Dealokasi Memori Bahasa C Tanpa Menggunakan free()
Pada pemrograman bahasa C terdapat cara lain untuk melakukan dealokasi memori tanpa perlu menggunakan fungsi "free()".
Sebelum memahami lebih dalam materi tentang Dealokasi Memori Bahasa C Tanpa Menggunakan free(), terlebih dahulu pelajari materi tentang: Layout Memori Bahasa C dan Penjelasannya, Pengurutan Struct Bahasa C Beserta Contoh Programnya, dan Compound Literals Bahasa C Beserta Penjelasannya.
Pada bahasa C, standar library fungsi realloc() dapat digunakan untuk dealokasi dari alokasi memori sebelumnya, yang dideklarasikan dari "stdlib.h".
void *realloc(void *ptr, size_t size);
Jika nilai "size" adalah nol, maka pemanggilan ke realloc adalah senilai dengan pemanggilan "free(ptr)". Dan jika "ptr" adalah bernilai NULL dan nilai size adalah bukan nol, maka pemanggilan realloc adalah senilai dengan "malloc(size)".
void *realloc(void *ptr, size_t size);
Jika nilai "size" adalah nol, maka pemanggilan ke realloc adalah senilai dengan pemanggilan "free(ptr)". Dan jika "ptr" adalah bernilai NULL dan nilai size adalah bukan nol, maka pemanggilan realloc adalah senilai dengan "malloc(size)".
Baca Juga:
Contoh: Periksa contoh program berikut.
Untuk mengatasi hal tersebut, maka dapat dilakukan modifikasi kode program sebagai berikut.
Contoh:
Setelah dilakukan pemeriksaan menggunakan valgrind, maka diperlihatkan bahwa tidak terdapat kebocoran memori yang ditandai dengan warna merah.
/* Kode program bahasa C
dengan kebocoran memori. */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *ptr = (int*)malloc(10);
return 0;
}
Setelah dilakukan pemeriksaan ringkasan kebocoran dengan alat valgrind. Ini menunjukkan kebocoran memori sebesar 10 byte, yang ditandai dengan warna merah.
Untuk mengatasi hal tersebut, maka dapat dilakukan modifikasi kode program sebagai berikut.
Contoh:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *ptr = (int*) malloc(10);
/* Dilakukan pemanggilan
realloc dengan size = 0 */
realloc(ptr, 0);
return 0;
}
Referensi Tambahan:
- Fungsi FSEEK dan REWIND Bahasa C dan Penjelasannya
- EOF Bahasa C Menggunakan GETC dan FEOF Beserta Penjelasannya
- Fungsi FOPEN Bahasa C untuk File dalam Mode Penulisan
- Read dan Write Struktur File Bahasa C
- Fungsi FGETS dan GETS Bahasa C dan Penjelasannya
- File Handling Bahasa C dan Penjelasannya
- Fungsi FSETPOS Bahasa C dan Penjelasannya
Artikel ini telah dilihat oleh: Galang Prayoga, Gerald Hugo Christano, Gladys Sanditya, Gustina Aruming Sekar Lati, dan Hafizh Daffa Setiawan.
5 komentar untuk "Dealokasi Memori Bahasa C Tanpa Menggunakan free()"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan dealokasi memori pada Bahasa C?
BalasHapusDealokasi memori merupakan cara untuk membebaskan memori akses acak atau RAM dari proses yang telah selesai dilakukan dan untuk mengalokasikan nilai memori yang baru.
HapusBagaimana fungsi dealokasi memori bahasa C?
BalasHapusFungsi dealokasi memori adalah untuk membatalkan alokasi memori pada bahasa C dan mengembalikannya ke heap.
HapusDealokasi memori hanya dapat dilakukan jika digunakan untuk membuat atau memodifikasi kode program C dan ingin dilakukan pembatalan alokasi memori seperti yang dilakukan pada proses pemanggilan FREE.
Hapus