Zdravim .. Ked v C alokujem char* a potom ho zmazem prebehne vsetko v poriadku .. ale ak ho este pred zmazanim naplnim nejakym stringom tak potom ak ho chcem zmazat vyhlasi segmentation falut.. Neviete reco to hlasi chybu? .. dakujem
Kód:
char *p = new char[200]; p = "nejaky text"; delete [] p;
Ty si alokuješ 200 charov na halde a na takto alokované miesto ti ukazuje premenná p (typu char ukazateľ) Potom si p prepíšeš na adresu reťazca zo zásobníku. No a vtedy je tých tvojích 200 charov na halde nenávratne preč.
Na kopírovanie reťazcov preto používaj funkcie zo string.h (a síce strcpy/strncpy)
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Vdaka .. s str cpy to ukguje ako ma .. takze ked napisem p = "nejaky text"; , tak vytvorim na stacku nejaky novy string a na tie povodne chary na heape uz nic neukazuje? .. lebo akosi tomu nechapem preco sa to prave takto chova ..