malloc() Funktion in der C-Bibliothek mit BEISPIEL

Was ist malloc in C?

Die Funktion malloc() steht für die Speicherzuweisung. Es handelt sich um eine Funktion, die zur dynamischen Zuweisung eines Speicherblocks verwendet wird. Es reserviert Speicherplatz der angegebenen Größe und gibt den Nullzeiger zurück, der auf den Speicherort zeigt. Der zurückgegebene Zeiger ist normalerweise vom Typ void. Das bedeutet, dass wir jedem Zeiger eine Malloc-Funktion zuweisen können.

Syntax

ptr = (cast_type *) malloc (byte_size);

Hier

  • ptr ist ein Zeiger auf cast_type.
  • Die malloc-Funktion gibt einen Zeiger auf den zugewiesenen Speicher von byte_size zurück.
Example: ptr = (int *) malloc (50)

Bei erfolgreicher Ausführung dieser Anweisung wird ein Speicherplatz von 50 Byte reserviert. Die Adresse des ersten Bytes des reservierten Speicherplatzes wird dem Zeiger ptr vom Typ int zugewiesen.

Betrachten Sie ein weiteres Beispiel einer Malloc-Implementierung:

#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
    if (ptr != NULL) {
      *(ptr + 5) = 480; /* assign 480 to sixth integer */
      printf("Value of the 6th integer is %d",*(ptr + 5));
    }
}

Ausgang:

Value of the 6th integer is 480

Was ist Malloc in C?

  1. Beachte das sizeof(*ptr) wurde anstelle von verwendet sizeof(int) um den Code robuster zu machen, wenn die *ptr-Deklaration später in einen anderen Datentyp umgewandelt wird.
  2. Die Zuweisung kann fehlschlagen, wenn der Speicher nicht ausreicht. In diesem Fall wird ein NULL-Zeiger zurückgegeben. Daher sollten Sie Code einschließen, um nach einem NULL-Zeiger zu suchen.
  3. Beachten Sie, dass der zugewiesene Speicher zusammenhängend ist und als Array behandelt werden kann. Wir können Zeigerarithmetik verwenden, um auf die Array-Elemente zuzugreifen, anstatt Klammern [ ] zu verwenden. Wir empfehlen, + zu verwenden, um auf Array-Elemente zu verweisen, da die Verwendung der Inkrementierung ++ oder += die im Array gespeicherte Adresse ändert. Zeiger.

Die Malloc-Funktion kann auch mit dem Zeichendatentyp sowie komplexen Datentypen wie Strukturen verwendet werden.