calloc() Functie in C-bibliotheek met programma VOORBEELD

Wat is calloc in C?

De calloc() in C is een functie die wordt gebruikt om meerdere geheugenblokken met dezelfde grootte toe te wijzen. Het is een dynamische geheugentoewijzingsfunctie die de geheugenruimte toewijst aan complexe datastructuren zoals arrays en structuren en een void-pointer naar het geheugen retourneert. Calloc staat voor contiguous allocation.

Malloc-functie wordt gebruikt om een ​​enkel blok geheugenruimte toe te wijzen, terwijl de calloc-functie in C wordt gebruikt om meerdere blokken geheugenruimte toe te wijzen. Elk blok dat door de calloc wordt toegewezen in C-programmering heeft dezelfde grootte.

calloc() Syntaxis:

ptr = (cast_type *) calloc (n, size);
  • Het bovenstaande instructievoorbeeld van calloc in C wordt gebruikt om n geheugenblokken van dezelfde grootte toe te wijzen.
  • Nadat de geheugenruimte is toegewezen, worden alle bytes op nul geïnitialiseerd.
  • De wijzer die zich momenteel op de eerste byte van de toegewezen geheugenruimte bevindt, wordt geretourneerd.

Telkens wanneer er een fout optreedt bij het toewijzen van geheugenruimte, zoals een tekort aan geheugen, wordt een nulaanwijzer geretourneerd, zoals weergegeven in het onderstaande calloc-voorbeeld.

Hoe calloc te gebruiken

Het onderstaande calloc-programma in C berekent de som van een rekenkundige reeks.

#include <stdio.h>
    int 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;
    }

Resultaat van de calloc in C-voorbeeld:

 
Building and calculating the sequence sum of the first 10 terms
Sum = 45