malloc() Funktion in der C-Bibliothek mit BEISPIEL
Was ist malloc in C?
Die Funktion malloc() steht für Memory Allocation. Es ist eine Funktion, die verwendet wird, um einen Speicherblock dynamisch zuzuweisen. Es reserviert Speicherplatz der angegebenen Größe und gibt den Nullzeiger zurück, der auf die Speicherstelle zeigt. Der zurückgegebene Zeiger ist normalerweise vom Typ void. Das bedeutet, dass wir jedem Zeiger die malloc-Funktion zuweisen können.
Syntax
ptr = (cast_type *) malloc (byte_size);
Hier,
- ptr ist ein Zeiger von 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.
zugewiesenBetrachten 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)); } }
Ausgabe:
Value of the 6th integer is 480
- Beachten Sie, dass sizeof(*ptr) wurde anstelle von sizeof(int) verwendet um den Code robuster zu machen, wenn die *ptr-Deklaration später in einen anderen Datentyp umgewandelt wird.
- Die Zuordnung kann fehlschlagen, wenn der Speicher nicht ausreicht. In diesem Fall gibt es einen NULL-Zeiger zurück. Sie sollten also Code einfügen, um nach einem NULL-Zeiger zu suchen.
- Denken Sie daran, 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 von Inkrementen ++ oder +=die vom Zeiger gespeicherte Adresse ändert.
Die Malloc-Funktion kann auch mit dem Zeichendatentyp sowie mit komplexen Datentypen wie Strukturen verwendet werden.
C Sprache
- C++ Switch Case-Anweisung mit BEISPIEL
- C++ Dynamische Zuordnung von Arrays mit Beispiel
- C++-Zeiger mit Beispielen
- Überladen von C++-Operatoren mit Beispielen
- C++-Struktur mit Beispiel
- Karte in C++ Standard Template Library (STL) mit Druckbeispiel
- std::list in C++ mit Beispiel
- C++ Funktionen mit Programmbeispielen
- calloc()-Funktion in der C-Bibliothek mit Programm BEISPIEL
- realloc()-Funktion in der C-Bibliothek:Wie verwenden? Syntax &Beispiel