malloc
Nach oben zu alloc.h - Index
Header-Datei
alloc.h, stdlib.h
Kategorie
Speicherroutinen
Prototyp
void *malloc(size_t size);
Beschreibung
malloc weist einen Speicherblock der Größe size Bytes auf dem Heap zu. In Programmen kann damit explizit die Speichermenge reserviert werden, die zu einem gegebenen Zeitpunkt benötigt wird.
malloc weist Hauptspeicher zu. Der Heap wird zur dynamischen Zuweisung von Speicherblöcken variabler Größe verwendet. Für viele Datenstrukturen, z. B. Baumstrukturen und Listen, wird standardmäßig Speicher auf dem Heap reserviert.
In großen Datenmodellen ist der gesamte hinter dem Programmstack verfügbare Speicherplatz für den Heap verfügbar.
Rückgabewert
Bei erfolgreicher Ausführung gibt malloc einen Zeiger auf den neu zugewiesenen Speicherblock zurück. Wenn nicht ausreichend Speicherplatz für den neuen Block vorhanden ist, gibt malloc NULL zurück. Der Inhalt des Speicherblocks wird nicht verändert. Wenn für das Argument size == 0 angegeben wird, gibt malloc NULL zurück.
Beispiel
#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <process.h>
int main(void)
{
char *str;
/* Speicher für String reservieren */
if ((str = (char *) malloc(10)) == NULL)
{
printf("Not enough memory to allocate buffer\n");
exit(1); /* Programm beenden, wenn der Speicherplatz erschöpft ist */
}
/* "Hello" in String kopieren */
strcpy(str, "Hello");
/* String anzeigen */
printf("String is %s\n", str);
/* Speicher freigeben */
free(str);
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |