malloc
Syntax
#include <stdlib.h> or #include <alloc.h>
void *malloc(size_t size);
Beschreibung
malloc reserviert einen Speicherbereich von size Bytes auf dem Heap. Damit kann ein Programm Speicherplatz genau nach Bedarf und exakt in der benötigten Größe reservieren.
Es wird Hauptspeicher reserviert. Der Heap wird für die dynamische Reservierung von Speicherbereichen variabler Größe benutzt. Viele Datenstrukturen wie beispielsweise Bäume und Listen reservieren Speicher auf dem Heap.
In den kleinen Datenmodellen wird mit near-Zeigern gearbeitet, der Heap liegt zwischen dem oberen Ende des Datensegments und dem unteren Ende des Stack. Der Heap reserviert den gesamten hier zur Verfügung stehenden Speicherbereich bis auf einige Bytes direkt unterhalb der Stack-Spitze, die für Stack-Vergrößerungen und für das Betriebssystem reserviert sind.
In den großen Datenmodellen wird mit far-Zeigern gearbeitet, der Heap beginnt oberhalb des Stack und endet mit der höchsten vom System zur Verfügung gestellten Speicheradresse.
Rückgabewert
malloc liefert bei fehlerfreier Ausführung einen Zeiger, der auf den neu reservierten Speicherbereich zeigt. Wenn kein Speicherbereich ausreichender Größe zur Verfügung steht, dann ist der Rückgabewert NULL. Es findet keine Initialisierung des Speicherblocks statt. Wenn der Parameter size den Wert 0 hat, liefert malloc NULL zurück.