Alokasi Memori Dinamis dalam C: Memahami malloc() dengan Contoh Praktis
Apa Itu malloc() dalam C?
Dalam C Standard Library, malloc()—singkatan dari “memory allocation”—secara dinamis menyediakan blok memori yang bersebelahan saat runtime. Fungsi ini mengembalikan pointer void* ke awal blok tersebut, yang dapat Anda cast ke tipe pointer apa pun yang Anda butuhkan.
Sintaks
ptr = (cast_type *)malloc(byte_size);
Dimana:
ptr adalah pointer dari cast_type yang ditentukan.
byte_size adalah jumlah byte yang akan dialokasikan.
Contoh:
ptr = (int *)malloc(50);
Setelah panggilan ini, 50 byte memori disediakan, dan ptr menunjuk ke byte pertama dari ruang tersebut.
Contoh Praktis
#include <stdlib.h> #include <stdio.h> int main() { int *ptr; ptr = malloc(15 * sizeof(*ptr)); /* Alokasi ruang untuk 15 integer */ if (ptr != NULL) { *(ptr + 5) = 480; /* Tetapkan 480 ke integer ke-enam */ printf("Nilai integer ke-6 adalah %d", *(ptr + 5)); } return 0; }
Output:
Nilai integer ke-6 adalah 480
Poin Utama
Menggunakan sizeof(*ptr) alih-alih sizeof(int) membuat kode tahan terhadap perubahan tipe pointer nanti.
Jika sistem tidak dapat memenuhi permintaan, malloc() mengembalikan NULL; selalu periksa apakah pointer null sebelum menggunakan memori.
Blok yang dialokasikan bersebelahan dan dapat diperlakukan sebagai array. Aritmetika pointer dipilih alih-alih operator subskrip untuk menghindari modifikasi nilai pointer asli.
malloc() bekerja dengan setiap tipe data—termasuk karakter, struktur, dan tipe yang ditentukan pengguna—menyediakan manajemen memori yang fleksibel untuk programmer C.