Malloc gegen Calloc

Autor: Laura McKinney
Erstelldatum: 4 April 2021
Aktualisierungsdatum: 7 Kann 2024
Anonim
Информатика. Язык Си: Системные вызовы malloc() и free() в Си. Центр онлайн-обучения «Фоксфорд»
Video: Информатика. Язык Си: Системные вызовы malloc() и free() в Си. Центр онлайн-обучения «Фоксфорд»

Inhalt

Der Hauptunterschied zwischen malloc und calloc besteht darin, dass malloc nur einen einzelnen Block des angeforderten Speichers zuweist, während calloc mehrere Blöcke des angeforderten Speichers zuweist.


Die Speicherzuweisung ist ein sehr wichtiges Konzept in der Informatik. In der Computerprogrammierung müssen Sie einen Speicher für Ihren Code erstellen. Malloc und Calloc brauchen Argumente zum Arbeiten. Malloc benötigt nur ein Argument, während Calloc zwei Argumente benötigt. Malloc und Calloc werden für die C-Programmierung und für die Speicherzuweisung und -freigabe verwendet. Die dynamische Speicherzuweisung ist ein äußerst wichtiges Konzept bei der Computerprogrammierung. Sie müssen Speicher im Computer zuweisen, bevor Sie ein Programm schreiben. Dieser Speicher wird für die Ausführung verwendet.

Malloc ist eine Funktion, mit der ein Speicherblock in Bytes zugewiesen wird. Die Größe des Blocks wird vom Benutzer festgelegt, und es ist sehr wichtig, die Größe des Speicherblocks vor dem Schreiben des Codes zu definieren. Die Zuordnung des Speichers erfolgt über RAM. Also, wenn das Programm fordert RAM für die Zuweisung von Speicher. Wenn Sie eine Anfrage stellen und diese Anfrage akzeptiert wird, gilt die Malloc-Funktion als erfolgreich und der Speicher wird zugewiesen. Wenn die Malloc-Funktion den Speicher nicht zuordnen kann, wird NULL zurückgegeben. Die Arbeitsweise der Malloc-Funktion ist einer Calloc-Funktion sehr ähnlich, da beide Funktionen die Speicherzuordnung zuweisen. Calloc verwendet zwei Argumente für die Speicheranforderung. In Calloc müssen wir die Größe des Datentyps zuweisen. Die beiden Argumente in calloc werden durch Kommas getrennt.


Inhalt: Unterschied zwischen Malloc und Calloc

  • Vergleichstabelle
  • Malloc
  • Calloc
  • Hauptunterschiede
  • Fazit
  • Erklärendes Video

Vergleichstabelle

BasisMallocCalloc
Bedeutungmalloc weist nur einen einzelnen Block des angeforderten Speichers zu

calloc, um mehrere Blöcke des angeforderten Speichers zuzuweisen.

 

Syntax

Die Syntax von malloc ist

void * malloc (size_t size);

Die Syntax von calloc ist

void * calloc (size_t num, size_t size);

GeschwindigkeitMalloc ist schneller als CallocCalloc ist langsamer als Malloc
Initialisierung Das malloc () löscht und initialisiert den zugewiesenen Speicher nicht.Der zugewiesene Speicher wird mit calloc () auf Null initialisiert.

Malloc

Malloc ist eine Funktion, mit der ein Speicherblock in Bytes zugewiesen wird. Die Größe des Blocks wird vom Benutzer festgelegt, und es ist sehr wichtig, die Größe des Speicherblocks vor dem Schreiben des Codes zu definieren. Die Zuordnung des Speichers erfolgt über RAM. Also, wenn das Programm fordert RAM für die Zuweisung von Speicher. Wenn Sie eine Anfrage stellen und diese Anfrage akzeptiert wird, gilt die Malloc-Funktion als erfolgreich und der Speicher wird zugewiesen. Wenn die Malloc-Funktion den Speicher nicht zuordnen kann, wird NULL zurückgegeben.


Calloc

Die Arbeitsweise der Malloc-Funktion ist einer Calloc-Funktion sehr ähnlich, da beide Funktionen die Speicherzuordnung zuweisen. Calloc verwendet zwei Argumente für die Speicheranforderung. In Calloc müssen wir die Größe des Datentyps zuweisen. Die beiden Argumente in calloc werden durch Kommas getrennt.

Hauptunterschiede

  1. Malloc weist nur einen einzelnen Block des angeforderten Speichers zu, während Calloc mehrere Blöcke des angeforderten Speichers zuweist.
  2. Die Syntax von malloc lautet: void * malloc (size_t size); während die Syntax von calloc ungültig ist * calloc (size_t num, size_t size);
  3. Malloc ist schneller als Calloc, während Calloc langsamer als Malloc ist.
  4. Das malloc () löscht und initialisiert den zugewiesenen Speicher nicht, während der zugewiesene Speicher mit calloc () auf Null initialisiert wird.

Fazit

In diesem Artikel sehen wir den klaren Unterschied zwischen malloc und calloc und bei der Implementierung.

Erklärendes Video