Apa malloc di C?
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 kita dapat menetapkan fungsi malloc ke pointer manapun.
Sintaksis
ptr = (cast_type *) malloc (byte_size);
Sini,
- ptr adalah pointer dari cast_type.
- Fungsi malloc mengembalikan pointer ke memori yang dialokasikan dari byte_size.
Example: ptr = (int *) malloc (50)
Ketika pernyataan ini berhasil dijalankan, ruang memori 50 byte dicadangkan. Alamat dari byte pertama dari ruang yang dicadangkan diberikan ke pointer ptr bertipe int.
Pertimbangkan contoh lain dari implementasi malloc:
#includeint 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 pengganti sizeof (int) untuk membuat kode lebih kuat ketika deklarasi * ptr diketikkan ke tipe data yang berbeda nanti.
- Alokasi mungkin gagal jika memori tidak cukup. Dalam kasus ini, ini mengembalikan pointer NULL. Jadi, Anda harus menyertakan kode untuk memeriksa pointer NULL.
- Perlu diingat bahwa memori yang dialokasikan bersebelahan dan dapat diperlakukan sebagai array. Kita bisa menggunakan aritmatika pointer untuk mengakses elemen array daripada menggunakan tanda kurung []. Kami menyarankan untuk menggunakan + untuk merujuk ke elemen array karena menggunakan incrementation ++ atau + = mengubah alamat yang disimpan oleh pointer.
Fungsi malloc juga dapat digunakan dengan tipe data karakter serta tipe data kompleks seperti struktur.