[ LUGOS ] free, delete ...

Blaz Zupan blaz na gold.amis.net
Pon Jun 22 21:26:40 CEST 1998


> Pisem C++ knjiznico, ki vsebuje nekaj takega:
> 
> 
> class MojClass{
> 	MojClass* children;	
> 	~MojClass();
> }
> 
> V destruktorju izvedem delete vseh objektov v children.
> Ker lahko (in dostikrat mora) uporabnik v children vpisati pointerje
> na staticno deklarirane objekte, dostikrat dobim SIGILL, 
> illegal instruction, ker hocem sprostiti RAM, ki ni bil alociran z
> malloc.
> 
> To je torej razlog. Kaj je pa resitev ?

Preprosta - tisti, ki je pomnilnik rezerviral, naj ga tudi sprosti. Ce ti
je uporabnik tvoje funkcije podal kazalec na rezerviran pomnilnik, potem
je njegova naloga, da ga tudi sprosti.

Blaz Zupan, blaz na medinet.si, http://home.amis.net/blaz
Medinet d.o.o., Linhartova 21, 2000 Maribor, Slovenia




Dodatne informacije o seznamu Starilist