Hauptunterschied: "Calloc" und "Malloc" beziehen sich auf die Leistung der dynamischen Speicherzuordnung in der Programmiersprache C. Ein 'calloc' initialisiert den zugewiesenen Speicher mit Null, ein 'malloc' dagegen nicht.
'Calloc' und 'malloc' sind standardmäßige Bibliotheksfunktionen.
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.
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. |