malloc in C: Dynamische Speicherzuordnung in C erklärt

Was ist malloc () in C?

malloc () ist eine Bibliotheksfunktion, mit der C Speicher dynamisch aus dem Heap zuweisen kann. Der Heap ist ein Speicherbereich, in dem etwas gespeichert ist.

malloc () ist Teil von stdlib.h und um es verwenden zu können, müssen Sie es verwenden #include .

Verwendung von Malloc

malloc () weist Speicher einer angeforderten Größe zu und gibt einen Zeiger auf den Anfang des zugewiesenen Blocks zurück. Um diesen zurückgegebenen Zeiger zu halten, müssen wir eine Variable erstellen. Der Zeiger sollte vom gleichen Typ sein, der in der malloc-Anweisung verwendet wird.

Hier machen wir einen Zeiger auf ein zukünftiges Array von Ints

int* arrayPtr;

Im Gegensatz zu anderen Sprachen kennt C den Datentyp nicht, für den es Speicher zuweist. es muss gesagt werden. Glücklicherweise hat C eine Funktion namens sizeof(), die wir verwenden können.

arrayPtr = (int *)malloc(10 * sizeof(int));

Diese Anweisung verwendete malloc, um Speicher für ein Array von 10 Ganzzahlen bereitzustellen. Da sich die Größe zwischen Computern ändern kann, ist es wichtig, die Größe () zu verwenden, um die Größe auf dem aktuellen Computer zu berechnen.

Der während der Programmausführung zugewiesene Speicher muss freigegeben werden, bevor das Programm geschlossen wird. Zum freeSpeichern können wir die Funktion free () verwenden

free( arrayPtr );

Diese Anweisung gibt den zuvor zugewiesenen Speicher frei. C wird nicht garbage collectorwie andere Sprachen wie Java mitgeliefert. Infolgedessen wird nicht ordnungsgemäß freigegebener Speicher nach dem Schließen des Programms weiterhin zugewiesen.

Bevor Sie fortfahren ...

Eine Rezension

  • Malloc wird für die dynamische Speicherzuweisung verwendet und ist nützlich, wenn Sie nicht wissen, wie viel Speicher während der Kompilierungszeit benötigt wird.
  • Durch das Zuweisen von Speicher können Objekte außerhalb des Bereichs des aktuellen Blocks vorhanden sein.
  • C wird als Wert anstelle der Referenz übergeben. Die Verwendung von malloc zum Zuweisen von Speicher und das Übergeben des Zeigers an eine andere Funktion ist effizienter als die Neuerstellung der Struktur durch die Funktion.

Weitere Informationen zur C-Programmierung:

  • Das Anfängerhandbuch für die C-Programmierung
  • If ... else Aussage in C erklärt
  • Ternärer Operator in C erklärt