Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Calloc in der C-Sprache?

Was ist Calloc in der C-Sprache?

王林
王林nach vorne
2023-09-10 19:45:021785Durchsuche

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.

Speicherzuweisungsfunktion

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: -

  • malloc ( )
  • calloc ( )
  • realloc ( )
  • free ( )

Calloc ( )-Funktion

  • 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)

Beispiel

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.

Was ist Calloc in der C-Sprache?

int *ptr;
ptr = (int * ) calloc (n, sizeof (int));

Beispielprogramm

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

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen