calloc()-Funktion in der C-Bibliothek mit Programm BEISPIEL

Was ist Calloc in C?

Die calloc() in C ist eine Funktion, die zum Zuweisen mehrerer Speicherblöcke gleicher Größe verwendet wird. Es handelt sich um eine dynamische Speicherzuweisungsfunktion, die den Speicherplatz komplexen Datenstrukturen wie Arrays und Strukturen zuweist und einen Void-Zeiger auf den Speicher zurückgibt. Calloc steht für Contiguous Allocation (zusammenhängende Zuweisung).

Malloc-Funktion wird verwendet, um einen einzelnen Block Speicherplatz zuzuweisen, während die Calloc-Funktion in C verwendet wird, um mehrere Blöcke Speicherplatz zuzuweisen. Jeder vom Calloc in der C-Programmierung zugewiesene Block hat die gleiche Größe.

calloc() Syntax:

ptr = (cast_type *) calloc (n, size);
  • Das obige Anweisungsbeispiel für calloc in C wird verwendet, um n Speicherblöcke derselben Größe zuzuweisen.
  • Nachdem der Speicherplatz zugewiesen wurde, werden alle Bytes auf Null initialisiert.
  • Die Zeiger zurückgegeben wird, welches aktuell das erste Byte des zugewiesenen Speicherplatzes ist.

Immer wenn bei der Zuweisung von Speicherplatz ein Fehler auftritt, beispielsweise aufgrund von Speichermangel, wird ein Nullzeiger zurückgegeben, wie im folgenden Calloc-Beispiel gezeigt.

So verwenden Sie Calloc

Das folgende Calloc-Programm in C berechnet die Summe einer arithmetischen Folge.

#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;
    }

Ergebnis des Aufrufs im C-Beispiel:

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