Die geheue wat met die funksies malloc en calloc toegewys is, word nie op hul eie gedeallokeer nie. Daarom word die vry metode gebruik, wanneer ook al die dinamiese geheuetoewysing plaasvind. Dit help om vermorsing van geheue te verminder deur dit vry te maak.
Hoe word die toegekende geheue vrygemaak?
In C word die biblioteekfunksie malloc gebruik om 'n blok geheue op die hoop toe te wys. Die program kry toegang tot hierdie blok geheue via 'n wyser wat malloc terugstuur. Wanneer die geheue nie meer nodig is nie, word die wyser na vry gestuur wat die geheue deallokeer sodat dit vir ander doeleindes gebruik kan word.
Wat gebeur as jy nie toegekende geheue vrymaak nie?
In die meeste gevalle is dit sinloos om geheue net voor die program verlaat, toe te ken. Die bedryfstelsel sal dit in elk geval terugeis. Free sal die dooie voorwerpe raak en blaai; die bedryfstelsel sal nie. Gevolg: Wees versigtig met "lekdetektors" wat toekennings tel.
Is die toekenning van geheue duur?
'n Naïewe meting van die koste van die toekenning en vrystelling van groot blokke geheue sal tot die gevolgtrekking kom dat dit ongeveer 7.5 μs kos vir elke allok/vry paar. Daar is egter drie afsonderlike koste per MB vir groot toekennings.
Kan die toegewese geheuespasie herverwyder indien wel, hoe?
Die hertoewysingsfunksie allokeer, hertoe, of bevry die geheueblok gespesifiseer deur old_blk gebaseer op die volgende reëls: As old_blk NULL is, 'n nuwe blok geheue van groottegrepe istoegeken. As die grootte nul is, word die gratis funksie geroep om die geheue vry te stel waarna old_blk wys.