Avatar uživatele
Registrovaný

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.

Odpovědi:

Avatar uživatele
Registrovaný

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.

 

Diskuze k otázce

 

U otázky nebylo diskutováno.

 

Přihlásit se

Položte otázku, odpovězte, zapojte se, …

začněte zde

Reklama

Kvalitní odpovědi v: Počítače a internet

Zlatý Bedy 1525
Zlatý Michal Kole 1198
Zlatý mosoj 1028
Zlatý Hlada 948
Zlatý ge0rge 894
Zlatý www 829
Zlatý led 820
Zlatý badisko 818
Zlatý gecco 795
Zlatý arygnoc 674

Zobrazit celkový žebříček

Facebook

 

Váš požadavek se vyřizuje, počkejte prosím.