Unterschied zwischen CALLOC und Malloc

Unterschied zwischen CALLOC und Malloc

Schlüsselunterschied - CALLOC vs Malloc

Bei der Programmierung müssen Daten gespeichert werden. Daten werden im Speicher gespeichert. Diese Speicherorte sind als Variablen bekannt.  Jede Variable hat einen bestimmten Typ. Sie können Ganzzahlen, Schwimmer, Doppel, Zeichen usw. sein. Es gibt auch Datenstrukturen, mit denen eine sequentielle Sammlung von Elementen desselben Typs festgelegt wird. Es ist ein Array. Der Programmierer muss die Array -Größe deklarieren. Wenn der Programmierer eine Reihe von Ganzzahlen für fünf Elemente deklariert, ist es nicht möglich, einem höheren Index einen Wert zuzuweisen als die deklarierte Größe. Die Speicherzuweisung ist festgelegt und kann nicht zur Laufzeit geändert werden. Andere Speicherzuweisungsmethode ist die dynamische Speicherzuweisung. Die dynamische Speicherzuweisung hilft dabei, bei Bedarf mehr Speicher zuzuweisen und bei Bedarf freizusetzen. Die Header -Datei hat vier Funktionen für die dynamische Speicherzuweisung. Calloc und Malloc sind zwei solcher Funktionen. Der Schlüsselunterschied Zwischen Calloc und malloc ist das CALLOC leistet den Speicher zu und initialisiert auch die zugewiesenen Speicherblöcke auf Null, während Malloc den Speicher zuweist, aber diesen zugewiesenen Speicher nicht in Null initialisiert, nicht initialisiert, Null nicht initialisiert, in Null nicht initialisiert. Der Zugriff auf den Inhalt in CALLOC gibt Null, aber Malloc bietet einen Müllwert.

INHALT

1. Überblick und wichtiger Unterschied
2. Was ist Calloc
3. Was ist Malloc
4. Ähnlichkeiten zwischen CALLOC und Malloc
5. Seite an Seite Vergleich - CALLOC vs Malloc in tabellarischer Form
6. Zusammenfassung

Was ist Calloc?

Speicherzuweisung ist der Vorgang des Speichers für die ausführenden Programme zuzuweisen. Manchmal ist es notwendig, die Speichergröße zu ändern. Daher wird eine dynamische Speicherzuweisung verwendet. Es wird mit Zeigern fertiggestellt. Zeiger sind Referenzvariablen, die die Adresse einer anderen Variablen enthalten.

Abbildung 01: Calloc und Malloc

CALLOC steht für "zusammenhängende Zuordnung". Es weist mehrere Speicherblöcke mit derselben Größe zu. Die Syntax für CALLOC ist wie folgt. Es braucht zwei Argumente. Sie sind die Anzahl der Blöcke und die Größe jedes Blocks. Der Funktion CALLOC gibt einen Hohlraumzeiger zurück.

        void * CALLOC (size_t num, size_t size);

Verweisen Sie das folgende einfache C -Programm.

#enthalten

#enthalten

int main ()

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

if (ptr == null)

printf („Speicher wird nicht zugewiesen“);

anders

printf („Speicher wird zugewiesen“);

Rückkehr 0;

Gemäß dem obigen Programm wird ein zusammenhängender Speicherblock, der 20 Elemente enthalten kann. Jeder wird die Größe einer Ganzzahl haben. Die Größe von (int) wird verwendet, da der Ganzzahltyp vom Compiler zu Compiler variiert.

Wenn die Speicherzuweisung erfolgreich ist, gibt sie die Basisadresse des Speicherblocks zurück. Dies bedeutet, dass Zeiger PTR jetzt auf die Basisadresse dieses Speicherblocks hinweist. Alle zugewiesenen Regionen werden auf Nullen initialisiert.  Es druckt die zugewiesene Speichermeldung. Wenn die Speicherzuweisung nicht erfolglos ist, wird der Nullzeiger zurückgegeben. Daher wird das Druckspeicher nicht zugeteilt.

Was ist Malloc?

Die Malloc -Funktion wird verwendet, um die erforderliche Anzahl von Bytes im Speicher zuzuordnen. Die Syntax für Malloc lautet wie folgt.  Die Größe repräsentiert den erforderlichen Speicher in Bytes.

        void *malloc (size_t_size);

Die Funktion MALCOC gibt einen Hohlraumzeiger zurück.

Siehe das folgende einfache C -Programm mit malloc -Funktion.

#enthalten

#enthalten

int main ()

int ptr * = (int *) malloc (10 * sizeof (int));

if (ptr == null)

printf („Speicher wird nicht zugewiesen“);

anders

printf („Speicher wird zugewiesen“);

Rückkehr 0;

Gemäß dem obigen Programm wird der Speicherblock zugewiesen. Der Zeiger zeigt auf die Startadresse des zugewiesenen Speichers. Der zurückgegebene Zeiger wird in einen ganzzahligen Typ konvertiert. Wenn der Speicher zugewiesen wird, wird der Druckspeicher zugewiesen. Wenn der Speicher nicht zugewiesen wird, kehrt ein Nullzeiger zurück. Daher wird der Speicher nicht zugewiesen.

Was sind die Ähnlichkeiten zwischen Calloc und Malloc??

  • Beide Funktionen werden in der Header -Datei deklariert . Es ist die Standard -Bibliotheks -Header -Datei.
  • Beide Funktionen werden für die dynamische Speicherzuweisung verwendet.
  • Der von CALLOC und Malloc zurückgegebene Zeiger sollte in den spezifischen Typ eingewiesen werden.
  • Bei erfolgreicher Speicherzuweisung geben beide Funktionen einen Zeiger mit der Basisadresse des Speicherblocks zurück.
  • Wenn die Speicherzuweisung nicht erfolglos ist, wird ein Nullzeiger zurückgegeben.

Was ist der Unterschied zwischen Calloc und Malloc?

CALLOC vs Malloc

CALLOC ist eine Funktion für die dynamische Speicherzuweisung in C -Sprache STDLIB.H Header -Datei, die eine bestimmte Anzahl von Bytes zuteilt und auf Null initialisiert. Malloc ist eine Funktion für die dynamische Speicherzuweisung in C -Sprache STDLIB.H Header -Datei, die eine bestimmte Anzahl von Bytes zuweist.
 Bedeutung
CALLOC steht für die konttigube Zuordnung. Malloc steht für die Speicherzuweisung.
Syntax
CALLOC folgt einer Syntax ähnlich wie void *CALLOC (size_t_num, size_t size); Malloc folgt einer Syntax ähnlich wie void *malloc (size_t_size);.
 Anzahl der Argumente
CALLOC nimmt zwei Argumente ein. Sie sind eine Reihe von Blöcken und Größe jedes Blocks. Malloc nimmt ein Argument auf. Es ist eine Reihe von Bytes.
Geschwindigkeit
Calloc dauert kaum länger als Malloc. Das liegt an dem zusätzlichen Schritt zur Initialisierung des zugewiesenen Speichers um Null. Malloc ist schneller als CALLOC.

Zusammenfassung -CALLOC vs Malloc

In der statischen Speicherzuweisung, die solche USA verwenden, wird der Speicher behoben. Wenn nur wenige Elemente gespeichert werden, wird der Rest des Gedächtnisses verschwendet. Es kann auch Fehler verursachen, wenn der zugewiesene Speicher klein ist als der erforderliche Speicher. Daher wird eine dynamische Speicherzuweisung verwendet. In der C -Sprache bieten CALLOC und MALOC eine dynamische Speicherzuweisung.  Der Unterschied zwischen CALLOC und malloc besteht darin, dass CALLOC Speicher zuteilt und auch die zugewiesenen Speicherblöcke auf Null initialisiert, während Malloc den Speicher zuordnet, aber keine Speicherblöcke auf Null initialisiert, auf Null initialisiert. Malloc nimmt zwei Argumente ein, während CALLOC zwei Argumente nimmt.

Laden Sie den PDF von CALLOC vs Malloc herunter

Sie können die PDF -Version dieses Artikels herunterladen und sie für Offline -Zwecke gemäß Citation Note verwenden. Bitte laden Sie die PDF -Version hier herunter: Unterschied zwischen CALLOC und MALDOC

Referenz:

1.Kumar, Krishan. „Unterschied zwischen malloc und calloc in c.”CS-Fundamentals.com, cs-fundamentals.com. Hier verfügbar  
2.„C Dynamische Speicherzuweisung.Wikipedia, Wikimedia Foundation, 13. Januar. 2018. Hier verfügbar 
3.„CALLOC () gegen malloc ().”Geeksforgeeks, 14. Juni 2017. Hier verfügbar