malloc (Speicherallokierung) wird verwendet, um dynamisch (h.h. zur Programmlaufzeit) Speicherplatz zur Verfügung zu stellen. Mögliche Anwendungsfälle sind:
Eine einfache Variante zum Reservieren von Speicherplatz könnte so aussehen. Beachten Sie, daß die Reservierung statisch (d.h. zur Compilezeit) erfolgt:
main()
{
char string[1000];
strcpy (string, "Some text");
}
Diese Variante hat Nachteile:
malloc ermöglicht es, eine variable Menge an Speicherplatz zu binden. Mit der Funktion free kann der Speicherplatz jederzeit wieder freigegeben werden..
Library: stdlib.h
Prototype: void *malloc(size_t size);
Syntax: char * String;
String = (char *) malloc(1000);
Im Beispiel oben werden 1000 Bytes reserviert. Der Zeiger String zeigt auf das erste Byte. Die 1000 Bytes werden nicht initialisiert. Wenn kein Speicherplatz vorhanden ist, wird der NULL -Zeiger zurückgeliefert. Beachten sie, daß man einen cast -Operator verwenden muß, um einen Zeiger auf einen bestimmten Datentyp zu erhalten, malloc liefert einen Zeiger auf void.
char
Datentyp.
free Funktion.
sizeof Operator.
new
ist das C++ Äquivalent zu malloc.
delete
ist das C++ Äquivalent zu free.