Što je calloc u C?
Calloc () u C funkcija koristi izdvojiti više blokova memorije imaju istu veličinu. To je funkcija dinamičke dodjele memorije koja dodjeljuje memorijski prostor složenim podatkovnim strukturama kao što su nizovi i strukture i vraća prazninski pokazivač u memoriju. Calloc je susjedna alokacija.
Malloc funkcija koristi se za dodjelu jednog bloka memorijskog prostora, dok se calloc funkcija u C koristi za dodjelu više blokova memorijskog prostora. Svaki blok koji dodijeli calloc u C programiranju je iste veličine.
sintaksa calloc ():
ptr = (cast_type *) calloc (n, size);
- Gornji primjer izjave calloc u C koristi se za dodjelu n memorijskih blokova iste veličine.
- Nakon dodjele memorijskog prostora, svi se bajtovi inicijaliziraju na nulu.
- Vraćen je pokazivač koji je trenutno u prvom bajtu dodijeljenog prostora memorije.
Kad god dođe do pogreške pri dodjeli memorijskog prostora, poput nedostatka memorije, vraća se nulti pokazivač kao što je prikazano u donjem primjeru calloc-a.
Kako koristiti calloc
Program kaloka u nastavku u C izračunava zbroj aritmetičkog niza.
#includeint main() {int i, * ptr, sum = 0;ptr = calloc(10, sizeof(int));if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}printf("Building and calculating the sequence sum of the first 10 terms \ n ");for (i = 0; i < 10; ++i) { * (ptr + i) = i;sum += * (ptr + i);}printf("Sum = %d", sum);free(ptr);return 0;}
Rezultat calloc-a u primjeru C:
Building and calculating the sequence sum of the first 10 termsSum = 45