Fungsi malloc() adalah singkatan dari alokasi memori. Ini adalah fungsi yang digunakan untuk mengalokasikan blok memori secara dinamis. Ini mencadangkan ruang memori dengan ukuran tertentu dan mengembalikan pointer nol yang menunjuk ke lokasi memori. Pointer yang dikembalikan biasanya bertipe void. Ini berarti bahwa kita dapat menetapkan fungsi malloc ke sembarang pointer.
Sintaks
ptr = (cast_type *) malloc (byte_size);
Di sini,
ptr adalah pointer dari cast_type.
Fungsi malloc mengembalikan pointer ke memori byte_size yang dialokasikan.
Example: ptr = (int *) malloc (50)
Ketika pernyataan ini berhasil dieksekusi, ruang memori sebesar 50 byte dicadangkan. Alamat byte pertama dari ruang yang dicadangkan diberikan ke pointer ptr bertipe int.
Pertimbangkan contoh lain implementasi malloc:
#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
if (ptr != NULL) {
*(ptr + 5) = 480; /* assign 480 to sixth integer */
printf("Value of the 6th integer is %d",*(ptr + 5));
}
}
Keluaran:
Value of the 6th integer is 480
Perhatikan bahwa sizeof(*ptr) digunakan sebagai ganti sizeof(int) untuk membuat kode lebih kuat ketika deklarasi *ptr diketikkan ke tipe data yang berbeda nanti.
Alokasi mungkin gagal jika memori tidak mencukupi. Dalam hal ini, ia mengembalikan pointer NULL. Jadi, Anda harus menyertakan kode untuk memeriksa penunjuk NULL.
Perlu diingat bahwa memori yang dialokasikan bersebelahan dan dapat diperlakukan sebagai array. Kita dapat menggunakan aritmatika pointer untuk mengakses elemen array daripada menggunakan tanda kurung [ ]. Kami menyarankan untuk menggunakan + untuk merujuk ke elemen array karena menggunakan penambahan ++ atau +=mengubah alamat yang disimpan oleh pointer.
Fungsi Malloc juga dapat digunakan dengan tipe data karakter serta tipe data kompleks seperti struktur.