calloc()-funksjon i C-bibliotek med programeksempel
Hva er calloc i C?
De calloc() i C er en funksjon som brukes til å tildele flere minneblokker med samme størrelse. Det er en dynamisk minneallokeringsfunksjon som allokerer minneplassen til komplekse datastrukturer som arrays og strukturer og returnerer en void-peker til minnet. Calloc står for sammenhengende allokering.
Malloc funksjon brukes til å tildele en enkelt blokk med minneplass mens calloc-funksjonen i C brukes til å tildele flere blokker med minneplass. Hver blokk tildelt av calloc i C-programmering er av samme størrelse.
calloc() syntaks:
ptr = (cast_type *) calloc (n, size);
- Eksemplet ovenfor på calloc i C brukes til å tildele n minneblokker av samme størrelse.
- Etter at minneplassen er tildelt, initialiseres alle byte til null.
- De pekeren som for øyeblikket er på den første byten av den tildelte minneplassen, returneres.
Når det er en feil ved allokering av minneplass, for eksempel mangel på minne, returneres en null-peker som vist i calloc-eksemplet nedenfor.
Hvordan bruke calloc
Calloc-programmet nedenfor i C beregner summen av en aritmetisk sekvens.
#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; }
Resultat av calloc i C-eksempel:
Building and calculating the sequence sum of the first 10 terms Sum = 45