Ang memorya na inilaan gamit ang mga function na malloc at calloc ay hindi de-allocated sa kanilang sarili. Kaya't ang libreng pamamaraan ay ginagamit, sa tuwing magaganap ang dynamic na paglalaan ng memorya. Nakakatulong itong mabawasan ang pag-aaksaya ng memorya sa pamamagitan ng pagpapalaya nito.
Paano ginawang libre ang inilalaan na memorya?
Sa C, ang library function na malloc ay ginagamit upang maglaan ng isang bloke ng memorya sa heap. Ina-access ng program ang bloke ng memorya sa pamamagitan ng isang pointer na ibinabalik ng malloc. Kapag hindi na kailangan ang memorya, ang pointer ay ipinapasa sa libre na nagdedelokasyon sa memorya upang magamit ito para sa iba pang mga layunin.
Ano ang mangyayari kung hindi mo mabakante ang nakalaan na memorya?
Sa karamihan ng mga kaso, ang pagde-deallocating memory bago ang paglabas ng program ay walang kabuluhan. Ang OS ay bawiin pa rin ito. Ang Libre ay hahawakan at pahina sa mga patay na bagay; ang OS ay hindi. Bunga: Mag-ingat sa mga "leak detector" na nagbibilang ng mga alokasyon.
Mahal ba ang paglalaan ng memory?
Ang isang walang muwang na pagsukat ng halaga ng paglalaan at pagpapalaya ng malalaking bloke ng memorya ay maghihinuha na nagkakahalaga ito ng humigit-kumulang 7.5 μs para sa bawat alloc/libreng pares. Gayunpaman, mayroong tatlong magkakahiwalay na gastos sa bawat MB para sa malalaking alokasyon.
Maaari bang i-realloc na palayain ang nakalaang memory space kung oo paano?
Ang realloc function ay naglalaan, nagre-relocate, o nagpapalaya sa block ng memory na tinukoy ng old_blk batay sa mga sumusunod na panuntunan: Kung old_blk ay NULL, isang bagong bloke ng memory ng mga byte ng laki ayinilalaan. Kung zero ang laki, tatawagin ang libreng function para ilabas ang memory na itinuro ng old_blk.