Menguasai Fungsi free() dalam C: Panduan Praktis & Contoh
Apa Itu Fungsi free() dalam C?
Fungsi free(), bagian dari pustaka standar C, melepaskan memori yang sebelumnya dialokasikan dengan malloc(), calloc(), atau realloc(). Dengan mengembalikan blok ke heap, ini menjaga jejak memori program Anda tetap terkendali dan mencegah kehabisan memori yang tersedia.
Berbeda dengan variabel stack, memori yang dialokasikan secara dinamis harus dilepaskan secara eksplisit. Gagal memanggil free() dapat menyebabkan kebocoran memori dan akhirnya menyebabkan kesalahan out-of-memory.
Sintaks
void free(void *ptr);
Di sini, ptr adalah pointer ke blok memori yang ingin Anda dealokasikan. Melewati pointer NULL aman dan tidak menghasilkan operasi apa pun.
Contoh Praktis
#include <stdio.h> #include <stdlib.h> int main(void) { // Sediakan ruang untuk 10 integer int *ptr = malloc(10 * sizeof(*ptr)); if (ptr == NULL) { fprintf(stderr, "Alokasi memori gagal\n"); return 1; } // Simpan nilai dan tampilkan ptr[2] = 50; printf("Nilai integer ke-3 adalah %d\n", ptr[2]); // Lepaskan memori saat selesai free(ptr); return 0; } Output:
Nilai integer ke-3 adalah 50
Praktik Terbaik
- Selalu periksa nilai kembali dari
malloc() (atau fungsi terkait) sebelum menggunakan pointer. - Setel pointer ke
NULL setelah memanggil free() untuk menghindari double free secara tidak sengaja. - Jangan membebaskan memori yang tidak dialokasikan secara dinamis.
- Gunakan
free() secepat mungkin setelah Anda selesai dengan memori untuk menjaga heap tetap ringan.