Memori yang diperuntukkan menggunakan fungsi malloc dan calloc tidak dinyahperuntukkan sendiri. Oleh itu, kaedah percuma digunakan, setiap kali peruntukan memori dinamik berlaku. Ia membantu mengurangkan pembaziran memori dengan membebaskannya.
Bagaimanakah memori yang diperuntukkan dibuat percuma?
Dalam C, fungsi perpustakaan malloc digunakan untuk memperuntukkan blok memori pada timbunan. Program ini mengakses blok memori ini melalui penuding yang dikembalikan oleh malloc. Apabila ingatan tidak lagi diperlukan, penunjuk diserahkan kepada membebaskan yang menukarlokasi memori supaya ia boleh digunakan untuk tujuan lain.
Apakah yang berlaku jika anda tidak mengosongkan memori yang diperuntukkan?
Dalam kebanyakan kes, deallokasi memori sebelum program keluar adalah sia-sia. OS akan menuntutnya semula. Percuma akan menyentuh dan halaman dalam objek mati; OS tidak akan. Akibat: Berhati-hati dengan "pengesan kebocoran" yang mengira peruntukan.
Adakah memperuntukkan memori mahal?
Pengukuran naif kos memperuntukkan dan membebaskan blok memori yang besar akan membuat kesimpulan bahawa kosnya kira-kira 7.5 μs untuk setiap pasangan peruntukan/percuma. Walau bagaimanapun, terdapat tiga kos setiap MB yang berasingan untuk peruntukan yang besar.
Bolehkah alokasi semula membebaskan ruang memori yang diperuntukkan jika ya bagaimana?
Fungsi realloc memperuntukkan, memperuntukkan semula atau membebaskan blok memori yang ditentukan oleh old_blk berdasarkan peraturan berikut: Jika old_blk ialah NULL, blok memori baharu bersaiz bait ialahdiperuntukkan. Jika saiznya sifar, fungsi percuma dipanggil untuk melepaskan memori yang ditunjuk oleh old_blk.