| 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) | |
|
|
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) | |
|
|
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) | |
|
|
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) | |
|
|
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) | |
|
|