Jednoduchá C++ hádanka

HackForum

Jednoduchá C++ hádanka#
Dejme tomu, že máme kod v C++, který vypadá takto:


int main(){
int *d=new int;
// skrytý řádek //
*d=5;
return 0;
}

Co musíte doplnit do skrytého řádku, aby před koncem programu platilo (*d=5) ?

za předpokladu, že:

- na místo v paměti, na které ukazuje *d se zápis pětky povedl
- na místě v paměti, na které ukazuje *d se hodnoty nijak nemění bez zapříčinění tohoto programu

kdo na to příjde? :-) hádanka je uveřejněna i na mém blogu [link]

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website10.1.2008 20:02
re: Jednoduchá C++ hádanka#
Nemyslíš, že bys měl nejdřív smazat z webu tu diskusi, kde uveřejňuješ správné řešení (ty víš kde...)? Jinak si to vygooglí každý, kdo není (t)lama...
Navíc tu máš překlep, v hádance ti chybí vykřičník - tak, jak ji tu teď vidím já, není třeba prázdný řádek vůbec doplňovat...
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*10.1.2008 22:36
re: Jednoduchá C++ hádanka#
aha, dík

otázka má znít:

Co musíte doplnit do skrytého řádku, aby před koncem programu platilo (*d!=5) ?

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website10.1.2008 22:38
re: Jednoduchá C++ hádanka#
moznosti je spousta. jde o to co myslis koncem programu a jak to *d budes testovat ;)
(odpovědět)
prc | 213.211.51.*11.1.2008 5:52
re: Jednoduchá C++ hádanka#
konec programu = hned za *d=5, a nejde o to to nějak testovat, ale aby opravdu *d pětku neobsahoval (klidně ale může následovat příkaz pro vypsaní *d nebo (*d==5)).
Autor tím chtěl říct - jaký příkaz se musí vykonat před přiřazením *d=5, aby toto přiřazení NEvložilo do *d pětku...
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*11.1.2008 7:42
re: Jednoduchá C++ hádanka#
ale jo - zápis pětky do *d se povede, neskončí chybou. Pětka se opravdu zapíše tam, kam d ukazuje. Ale při přidání správného řádku platí hned po *d = 5; *d!=5. Jak si to budeš testovat je jedno, prostě platí *d!=5 :-)

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website11.1.2008 8:26
re: Jednoduchá C++ hádanka#
neni to jedno, slo mi o to jestli nechces testovat obsah puvodni adresy vracene new, a o to ze return z main bezprostredne neukoncuje program. porad mam vic nez jedno reseni, nicmene je zrejme ktere z nich jsi asi mel na mysli :)
(odpovědět)
prc | 213.211.51.*12.1.2008 5:24
re: Jednoduchá C++ hádanka#
No, příklad má opravdu více než jedno řešení. Také jsem pochopil, které jsi měl na mysli. Za 5 vteřin nebylo co dělat. Chce to lepší "hlavolamy" ;). Ono se to má totiž tak, že pointery jsou jedno z nejjednodušších témat. A bloumat nad ani ne desetiřádkovým kódem... xD

----------
Frontis nulla fides.
(odpovědět)
Neuro | E-mail12.1.2008 9:54
re: Jednoduchá C++ hádanka#
název tohoto threadu: Jednoduchá C++ hádanka mluví za vše, ne?

a celkem by mě zajímalo, jaké je jiné řešení mimo toho, co jsem myslel já? =) co byste dosadili do toho řádku?

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website12.1.2008 12:45

Zpět
 
 
 

 
BBCode