Freigeben über


free

Hebt die Zuweisung eines Speicherblocks auf oder gibt diesen frei.

Syntax

void free(
   void *memblock
);

Parameter

memblock
Zuvor zugewiesener Speicherblock, der freigegeben werden soll.

Hinweise

Die Funktion free gibt einen Speicherblock frei (memblock), der zuvor durch einen Aufruf von calloc, malloc oder realloc belegt wurde. Die Anzahl der freigegebenen Bytes entspricht der Anzahl der Bytes, die angefordert wurden, wenn der Block zugewiesen wurde (oder neu zugeordnet wurde).realloc Ist memblock dies NULLder Wert, wird der Zeiger ignoriert und free wird sofort zurückgegeben. Der Versuch, einen ungültigen Zeiger freizugeben (ein Zeiger auf einen Speicherblock, der nicht von calloc, mallocoder realloc) zugewiesen wurde, kann sich auf nachfolgende Zuordnungsanforderungen auswirken und Fehler verursachen.

Wenn bei der Freigabe des Speichers ein Fehler auftritt, wird errno mit Informationen des Betriebssystems über die Art des Fehlers angegeben. Weitere Informationen finden Sie untererrno, _doserrno, _sys_errlistund _sys_nerr.

Nachdem ein Speicherblock freigegeben wurde, wird die Menge an freiem Speicher auf dem Heap minimiert, _heapmin indem die nicht verwendeten Regionen zusammengefasst und wieder an das Betriebssystem freigegeben werden. Freigegebener Arbeitsspeicher, der nicht für das Betriebssystem freigegeben ist, wird im kostenlosen Pool wiederhergestellt und steht erneut für die Zuweisung zur Verfügung.

Wenn die Anwendung mit einer Debugversion der C-Laufzeitbibliotheken verknüpft ist, free wird sie aufgelöst._free_dbg Weitere Informationen dazu, wie der Heap während des Debuggingvorgangs verwaltet wird, finden Sie im CRT-Debug-Heap.

free ist als __declspec(noalias) gekennzeichnet, d.h., die Funktion ändert keine globalen Variablen. Weitere Informationen finden Sie unter noalias.

Verwenden Sie _freeazum Freigeben des zugewiesenen _mallocaArbeitsspeichers .

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Anforderungen

Funktion Erforderlicher Header
free <stdlib.h> und <malloc.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

Ein Beispiel hierfür finden Sie unter malloc.

Siehe auch

Speicherzuweisung
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea