Heim > Artikel > Backend-Entwicklung > Was ist Calloc in der C-Sprache?
Speicherzuweisungsfunktion der C-Bibliothek void *calloc(size_t nitems, size_t size) reserviert den angeforderten Speicher und gibt einen Zeiger darauf zurück.
Der Unterschied zwischen malloc und calloc besteht darin, dass malloc den Speicher nicht auf Null setzt, während calloc den zugewiesenen Speicher auf Null setzt.
Speicher kann auf zwei Arten zugewiesen werden, wie unten beschrieben:
Nachdem der Speicher zur Kompilierungszeit zugewiesen wurde, kann er während der Ausführung nicht geändert werden. Es kann zu Problemen mit unzureichendem oder verschwendetem Speicher kommen.
Die Lösung besteht darin, Speicher dynamisch zu erstellen, dh Speicher entsprechend den Benutzeranforderungen während der Programmausführung zu erstellen.
Die Standardbibliotheksfunktionen für die dynamische Speicherverwaltung lauten wie folgt: -
Diese Funktion ist Wird verwendet, um zur Laufzeit zusammenhängende Speicherblöcke zuzuweisen.
Dies ist speziell für Arrays konzipiert.
Es gibt einen Void-Zeiger zurück, der auf die Basisadresse des zugewiesenen Speichers zeigt. Die Syntax der Funktion
calloc() lautet wie folgt:
void *calloc ( numbers of elements, size in bytes)
Das folgende Beispiel zeigt die Verwendung der Funktion calloc().
int *ptr; ptr = (int * ) calloc (500,2);
Hier werden nacheinander 500 Speicherblöcke mit einer Größe von 2 Bytes zugewiesen. Insgesamt zugewiesener Speicher = 1000 Bytes.
int *ptr; ptr = (int * ) calloc (n, sizeof (int));
Nachstehend finden Sie ein C-Programm, das die dynamische Speicherzuweisungsfunktion Calloc verwendet, um die Summe gerader und ungerader Zahlen in einer Menge von Elementen zu berechnen.
Online-Demonstration
#include<stdio.h> #include<stdlib.h> void main(){ //Declaring variables, pointers// int i,n; int *p; int even=0,odd=0; //Declaring base address p using Calloc// p = (int * ) calloc (n, sizeof (int)); //Reading number of elements// printf("Enter the number of elements : "); scanf("%d",&n); /*Printing O/p - We have to use if statement because we have to check if memory has been successfully allocated/reserved or not*/ if (p==NULL){ printf("Memory not available"); exit(0); } //Storing elements into location using for loop// printf("The elements are : </p><p>"); for(i=0;i<n;i++){ scanf("%d",p+i); } for(i=0;i<n;i++){ if(*(p+i)%2==0){ even=even+*(p+i); } else { odd=odd+*(p+i); } } printf("The sum of even numbers is : %d</p><p>",even); printf("The sum of odd numbers is : %d</p><p>",odd); }
Wenn das obige Programm ausgeführt wird, werden die folgenden Ergebnisse erzeugt:
Enter the number of elements : 4 The elements are : 12 56 23 10 The sum of even numbers is : 78 The sum of odd numbers is : 23
Das obige ist der detaillierte Inhalt vonWas ist Calloc in der C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!