KOMPILACE, GCC PODRUHE

Zdenek Pizl, Czech Agriculture University, Prague pizl na max.af.czu.cz
Čtvrtek Srpen 7 15:47:27 CEST 1997


On Thu, 31 Jul 1997, Jan Kurik wrote:

> 	Presne tohle mi to delalo pod Win a nekdy po DOGsem. Nakonec jsem prisel na to, ze se mi to stane pokud si alokuju kus pameti a pri pouzivani zapisu dal nez kam jsem to alokoval. Napr.:
> /***/
> char * X = (char *) malloc(10); /* Alokuju 10 Byte */
> ...
> *(X + 10) = '\0'; /* Zapisu na 11-ty Byte */
> ...
> free(X); /* Ale az tady to spadne */
> /***/
> 
> 	Chvili mi trvalo, nez jsem na to prisel, ze to nespadne pri zapisu, ale az pri uvolneni. U Linuxu jsem zatim takovy problem nemel, ale taky pod nim programuju relativne malo. Zkuste se treba podivat, jestli nekde nezapominate na alokovani pameti o 1B vetsi, nez je delka retezce ( na znak '\0' ), coz je treba moje casta chyba :-).
> 
> Jan Kurik
> 

 Bingo, nevim jestli jsi mi nekoukal pres rameno, kdyz jsem to mrsil, ale
naprosto presne jsi to odhadnul, ja opravdu zapisoval 11B do 10B pole
:-((( !!!! Hledal jsem to tri dny, prepsal jsem pulku objektu, a pak mne
to trklo) - no aspon jsem si zopakoval jak fungujou C++ veci pri alokaci
ukazatele na pole objektu :-)

> 


			===============================
			"			      "
			"                             "
			"    Zdenek Pizl (Corp. yA)   "
			"			      "
			"    pizl na talk.af.czu.cz      "
			"                             "
			===============================



Další informace o konferenci Linux