Page 174 - Project Akhir Media Pendidikan
P. 174
permintaan ruang tersebut tidak dipenuhi. Berikut ini contoh penggunaan fungsi
realloc() untuk menambahkan ruang memori yang telah dialokasikan.
int *P;
P = (int*) calloc(10, sizeof(int)); /* Memesan ruang 40 byte */
realloc((int*) P, 80); /* Memesan ruang sebanyak 40 byte lagi */
7.11. Mendealokasikan Memori
Untuk menghindari adanya pemborosan memori ataupun terjadinya memory leak
(kebocoran memori), maka sebaiknya kita melakukan dealokasi terhadap ruang-ruang
memori yang sebelumnya telah dialokasikan melalui fungsi malloc(), calloc()
maupun realloc(). Dalam bahasa C, proses ini akan dilakukan dengan menggunakan
fungsi free() yang memiliki parameter berupa pointer. Berikut ini prototype dari
fungsi free().
void *free(void *p);
p di sini haruslah berupa pointer yang sebelumnya dialokasikan dengan menggunakan
fungsi malloc(), calloc() ataupun realloc(). Berikut ini contoh penggunaan fungsi
free().
#include <stdio.h>
int main(void) {
int *P;
P = (int*) malloc(sizeof(int));
/* Kode yang akan dilakukan */
...
/* Mendealokasikan alamat yang telah selesai digunakan */
free(P);
return 0;
}
7.12. Memory Leak
Bagi kebanyakan programmer pemula, penggunaan pointer biasanya akan menyebabkan
memory leak (kebocoran memori), yaitu peristiwa dimana terdapat adanya ruang memori
yang terbuang secara sia-sia karena ruang memori tersebut sudah tidak dapat di akses untuk
didealokasikan. Memory leak ini dapat mengakibatkan program ataupun
170