calloc() dalam C: Alokasi Memori Diinisialisasi Nol dan Contoh Praktis
Apa Itu calloc dalam C?
Fungsi calloc() dalam C mengalokasikan beberapa blok memori dengan ukuran yang sama dan menginisialisasi setiap byte ke nol. Ini adalah rutinitas alokasi dinamis yang digunakan untuk struktur data kompleks seperti array atau struct, mengembalikan pointer void *.
Sementara malloc() menyediakan satu blok yang bersebelahan, calloc() meminta n blok, masing-masing size byte, yang dijamin nol dan bersebelahan.
Sintaks
ptr = (cast_type *)calloc(n, size);
- Meminta
n blok, masing-masing size byte. - Semua byte secara otomatis diatur ke nol.
- Mengembalikan pointer ke byte pertama dari area yang dialokasikan, atau
NULL jika permintaan gagal.
Menggunakan calloc – Program Contoh
Program berikut menunjukkan bagaimana calloc() dapat digunakan untuk menghitung jumlah sepuluh suku pertama dari deret aritmetika.
#include <stdio.h> #include <stdlib.h> int main(void) { int *ptr, sum = 0; ptr = calloc(10, sizeof(int)); if (!ptr) { fprintf(stderr, "Error! Memori tidak dialokasikan.\n"); return EXIT_FAILURE; } printf("Menghitung jumlah 10 suku pertama:\n"); for (int i = 0; i < 10; ++i) { ptr[i] = i; sum += ptr[i]; } printf("Jumlah = %d\n", sum); free(ptr); return EXIT_SUCCESS; } Output
Menghitung jumlah 10 suku pertama: Jumlah = 45