A malloc és calloc függvényekkel lefogl alt memória önmagában nem vonható le. Ezért a free metódust használjuk, amikor a dinamikus memóriafoglalás megtörténik. Segít csökkenteni a memóriapazarlást azáltal, hogy felszabadítja azt.
Hogyan szabadul fel a lefogl alt memória?
C-ben a malloc könyvtárfüggvény egy memóriablokk lefoglalására szolgál a kupacban. A program a malloc által visszaadott mutatón keresztül éri el ezt a memóriablokkot. Amikor már nincs szükség a memóriára, a mutató átkerül a free-ra, amely felszabadítja a memóriát, hogy más célokra lehessen használni.
Mi történik, ha nem szabadítja fel a lefogl alt memóriát?
A legtöbb esetben értelmetlen a memória felszabadítása közvetlenül a program kilépése előtt. Az OS úgyis visszakéri. A Free megérinti és lapozni fogja a holt objektumokat; az OS nem fog. Következmény: Legyen óvatos a "szivárgásérzékelőkkel", amelyek számolják a kiosztásokat.
Drága a memóriafoglalás?
A nagy memóriablokkok lefoglalásának és felszabadításának költségeinek naiv mérése arra a következtetésre jutna, hogy ez körülbelül 7,5 μs-ba kerül minden alloc/szabad pár esetén. Azonban három különálló MB-onkénti költség vonatkozik a nagy kiosztásokra.
Felszabadítható újra a lefogl alt memóriaterület, ha igen hogyan?
A realloc függvény lefoglalja, újrafoglalja vagy felszabadítja az old_blk által megadott memóriablokkot a következő szabályok alapján: Ha old_blk értéke NULL, egy új, bájt méretű memóriablokk. vankiosztott. Ha a méret nulla, a szabad függvény meghívása az old_blk által mutatott memória felszabadítására.