calloc()
Mengalokasikan memori secara dinamis dan mengisinya dengan nol dalam C
Fungsi calloc() digunakan untuk mengalokasikan blok memori secara dinamis, mirip dengan malloc(), tetapi secara otomatis menginisialisasi semua byte dengan nol (0).
Sintaks
void *calloc(size_t num, size_t size);num➜ Jumlah elemen yang ingin dialokasikan.size➜ Ukuran (dalam byte) dari setiap elemen.Mengembalikan pointer ke blok memori yang dialokasikan.
Jika gagal, mengembalikan
NULL.
Contoh Penggunaan
1. Mengalokasikan memori untuk array integer
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr;
int n = 5;
// Alokasi memori untuk array dengan 5 elemen, masing-masing sebesar sizeof(int)
arr = (int*) calloc(n, sizeof(int));
if (arr == NULL) {
printf("Alokasi memori gagal!\n");
return 1;
}
// Menampilkan isi array setelah calloc()
printf("Isi array setelah calloc(): ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]); // Semua elemen bernilai 0
}
printf("\n");
free(arr); // Membebaskan memori
return 0;
}Hasilnya:
calloc(n, sizeof(int))➜ Mengalokasikan 5 x 4 byte = 20 byte untuk array integer.Setiap elemen otomatis diisi dengan nol (
0).free(arr)➜ Membebaskan memori setelah digunakan.
2. Mengalokasikan memori untuk string
Hasilnya:
calloc(20, sizeof(char))➜ Mengalokasikan 20 byte dan mengisinya dengan\0(karakter kosong).Sebelum diisi, string kosong karena
calloc()menginisialisasi dengan nol (\0).Setelah menyalin string, bisa digunakan seperti biasa.
Perbandingan calloc() vs malloc()
malloc()
Mengalokasikan blok memori tanpa menginisialisasi isinya.
calloc()
Mengalokasikan memori dan mengisinya dengan nol (0).
Hasilnya:
malloc()bisa mengandung nilai acak, sedangkancalloc()selalu menginisialisasi memori dengan nol.
Last updated