free ist definiert in der stdlib
, die in C über stdlib.h
, bzw. in C++ über cstdlib
eingebunden wird.
free() gibt einen Speicherblock, der zuvor mit Hilfe von malloc(), calloc() oder realloc() vom Betriebssystem angefordert wurde, wieder an das Betriebssystem zurück.
#include <stdlib.h> void free ( void * memoryBlock );
memoryBlock: Zeiger, der von malloc(), calloc() oder realloc() zurückgegeben wurde.
Es ist erlaubt, free den Wert NULL zu übergeben. Es ist also nicht erforderlich zuerst zu prüfen, ob eine Variable auf einen Datensatz oder nicht. Ein beliebter Fehler ist dann jedoch, die Variable, die weiterhin auf den freigegeben Speicherblock zeigt, nochmals zu verwenden oder freizugeben. Es ist daher ratsam, nach dem Aufruf von free(), die Variable auf NULL zu setzen.