Cos'è calloc in C?
Il calloc () in C è una funzione utilizzata per allocare più blocchi di memoria aventi la stessa dimensione. È una funzione di allocazione dinamica della memoria che alloca lo spazio di memoria a strutture di dati complesse come array e strutture e restituisce un puntatore vuoto alla memoria. Calloc sta per allocazione contigua.
La funzione malloc viene utilizzata per allocare un singolo blocco di spazio di memoria mentre la funzione calloc in C viene utilizzata per allocare più blocchi di spazio di memoria. Ogni blocco allocato dal calloc nella programmazione C ha la stessa dimensione.
calloc () Sintassi:
ptr = (cast_type *) calloc (n, size);
- L'esempio di istruzione precedente di calloc in C viene utilizzato per allocare n blocchi di memoria della stessa dimensione.
- Dopo aver allocato lo spazio di memoria, tutti i byte vengono inizializzati a zero.
- Viene restituito il puntatore che si trova attualmente al primo byte dello spazio di memoria allocato.
Ogni volta che si verifica un errore nell'allocazione dello spazio di memoria come la mancanza di memoria, viene restituito un puntatore nullo come mostrato nell'esempio calloc seguente.
Come usare calloc
Il seguente programma calloc in C calcola la somma di una sequenza aritmetica.
#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;}
Risultato del calloc nell'esempio C:
Building and calculating the sequence sum of the first 10 termsSum = 45