[ LUGOS ] free, delete ...
Jernej Kovše
jernej.kovse na uni-mb.si
Tor Jun 23 08:29:59 CEST 1998
-----Original Message-----
From: polz <polz na writeme.com>
To: lugos-list na lugos.si <lugos-list na lugos.si>
Date: 22. junij 1998 20:10
Subject: Re: [ LUGOS ] free, delete ...
>
>>Dvomim da je to sploh mozno, brez pregledovanja raznoraznih kernelskih
>>struktur. Sploh pa se postavlja vprasanje - zakaj bi to informacijo
>>potreboval?
>>
>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 ?
>
Ni mi jasno nekaj: Delas v C++, ker imas classe, torej uporabljaj
C++ stvari za alokacijo pomnilnika, torej new namesto malloc in
delete namesto free.
new rezervira prostor + poklice konstruktor, malloc pa samo
rezervira prostor
delete poklice destruktor + sprosti prostor, free pa samo sprosti
prostor.
Mogoce je v tem tezava --> free destruktorja NE poklice!
Jernej
Dodatne informacije o seznamu Starilist