malloc

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

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++

+

+

+

+