Unterschied zwischen Calloc und Malloc | Unterschied Zwischen | natapa.org

Unterschied zwischen Calloc und Malloc




Hauptunterschied: "Calloc" und "Malloc" beziehen sich auf die Leistung der dynamischen Speicherzuweisung in der Programmiersprache C. Ein "Calloc" initialisiert den zugewiesenen Speicher mit Null, ein "Malloc" dagegen nicht.

Sowohl Calloc als auch Malloc sind Standardfunktionen der Bibliothek.

Ein "Calloc" ist eine Gruppe von C-Programmierstandard-Bibliotheksfunktionen. Es ordnet grundsätzlich den dynamischen Speicher in der Sprache C zu. Es bietet Platz für eine Variable in einem laufenden Programm. Die Bibliotheksfunktion wird als calloc (num, size) geschrieben. Diese Funktion verwendet zwei Argumente, die die Anzahl der zu reservierenden Elemente und die Größe jedes Elements in Byte angeben. Es weist den Speicherblock entsprechend der Größe * * zu. Es gibt auch einen Zeiger auf den Anfang des zugewiesenen Speicherbereichs im Speicher zurück. Die Calloc-Funktion wird verwendet, um den Platz für dynamische Arrays zu reservieren.

Ihre Syntax lautet wie folgt:

void * calloc (number_of_blocks, size_of_each_block_in_bytes);

"Void" ist hier eine allgemeine C-Funktion, die keinen Wert zurückgibt. Die Anzahl der Elemente im ersten Argument gibt die Größe eines Elements bis zum zweiten Argument in Byte an. Die Adresse wird nach der erfolgreichen Partitionierung zurückgegeben, andernfalls wird bei einem Fehler der Funktion ein NULL-Wert zurückgegeben.

Ein "Malloc" ist eine Speicherzuweisungsfunktion in der Sprache C. Es ordnet manuell Speicherplatz für einige der C-Datenstrukturen zu. Für diese Datenstrukturen wird ein Speicherabschnitt mit einer bestimmten Größe zugewiesen. Die Funktion malloc () reserviert Speicher aus einem Heap. Automatische Variablen, die innerhalb der Funktion deklariert werden, werden auf dem Heap gespeichert. Es reserviert nur den Speicher der erforderlichen Anzahl von Bytes. Der in der Funktion 'malloc' zugewiesene dynamische Speicher kann durch Kenntnis der Adresse an einer beliebigen Stelle im Programm verwendet werden.

Ihre Syntax lautet wie folgt:

void * malloc (size_in_bytes);

Insbesondere wird die Adresse generisch (void *) zurückgegeben. Wenn "malloc" den Speicher nicht zuordnen kann, wird -1 zurückgegeben. Andernfalls wird die Adresse zurückgegeben, von der der Speicher zugewiesen wird. Der zugewiesene Speicher kann in Form einer Ganzzahl sein, indem der Typ die leere Adresse als int * umwandelt; Der zugewiesene Speicher kann auch als Float ausgeführt werden, indem einfach die gleiche leere Adresse wie bei Float * umgewandelt wird.

Vergleich zwischen Calloc und Malloc:

Calloc

Malloc

Basisfunktionen

Die Bibliotheksfunktion weist einen Bereich des Speichers zu, der groß genug ist, um die "n Elemente" von "size" Bytes aufzunehmen.

Die Bibliotheksfunktion weist nur die Speicherbytes „Größe“ zu.

Initialisierung

Es initialisiert den Inhalt des Speichers mit Nullen.

Der Inhalt des Speichers wird nicht mit Nullen initialisiert.

Anzahl der Argumente

Hier gibt es zwei Argumente.

Hier gibt es nur ein Argument.

Zugeordnete Werte

Der zugewiesene Bereich wird auf Null initialisiert.

Der Inhalt des zugewiesenen Speichers wird nicht geändert, dh der Speicher enthält unvorhersehbare Werte oder Speicherwerte, wodurch ein Risiko entsteht.

Gibt den Wert zurück

Leerzeiger (Leerzeichen *). Nach einer erfolgreichen Zuordnung wird ein Zeiger auf den Speicherblock zurückgegeben.

Leerzeiger (Leerzeichen *). Nach einer erfolgreichen Zuordnung wird ein Zeiger auf den Speicherblock zurückgegeben.

Vorheriger Artikel

Unterschied zwischen CCD- und CMOS-Sensor

Nächster Artikel

Unterschied zwischen Sony Xperia P und Alcatel One Touch Idol