Avatar uživatele
anonym

ukazatele v C++

Mám jednoduchou otázku: je možné použít následující kostrukci?

char *ukazatel="ahoj";
cout<< ukazatel;

Asi je to dost velká chyba, ne? Tedy předpokládám, že tímto zaberu v paměti místo pro ukazatel, ale ne pro ta data. Každopádně překladač to sežere..

Uzamčená otázka

ohodnoťte nejlepší odpověď symbolem palce

Zajímavá 0 před 3937 dny Sledovat Nahlásit



Odpovědi
Avatar uživatele
☮ Vašek

Je to v pořádku. Literál "ahoj" bude každopádně součástí přeloženého souboru (stejně jako by byl použit kdekoliv jinde, např. jako argument funkce) a proměnná bude jednoduše ukazatel na ono místo.

Data byste však měl používat výhradně pro čtení – může se stát, že pro jednoduchost budou uložena v segmentu paměti, do kterého program nesmí zapisovat, takže i pokus o přepsání jednoho ze znaků 'A', 'h', 'o', 'j' skončí chybou a ukončením programu.

0 Nominace Nahlásit

Diskuze k otázce

U otázky nebylo diskutováno.

Nový příspěvek
Zajímavé otázky v kategorii Počítače a internet