Freigeben über


Frei

Gibt frei oder gibt einen Speicherblock freigegeben.

void free( 
   void *memblock 
);

Parameter

  • memblock
    Zuvor gemeinsam genutzt reservierter Speicherblock.

Hinweise

Die free-Funktion wird ein Speicherblock freigegeben (memblock) die vorher durch einen Aufruf calloc, malloc oder realloc zugeordnet wurde. Die Anzahl von freigegebenen Bytes entspricht der Anzahl Bytes angefordert äquivalent, als Block zugeordnet wurde (oder neu zugeordnet, im Fall von realloc). Wenn memblockNULL ist, wird der Zeiger ignoriert und free wird sofort zurückgegeben. Der Versuch, einen ungültigen Zeiger (einen Zeiger auf einen Speicherblock, der nicht durch calloc, zugeordnet wurde mit malloc oder realloc) freizugeben folgenden Zuordnungsanforderungen beeinflussen und verursacht möglicherweise Fehler.

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 unter errno, _doserrno, _sys_errlist und _sys_nerr.

Nachdem ein Speicherblock freigegeben wurde, minimiert _heapmin und der freie Arbeitsspeicher im Heap, indem die nicht verwendeten Bereiche Außerdem werden und sie wieder für das Betriebssystem frei. Freigegebener Arbeitsspeicher, der nicht dem Betriebssystem verworfen wird, wird z freien Pool wiederhergestellt und zur Zuordnung wieder verfügbar.

Wenn die Anwendung mit einer Debugversion der C-Laufzeitbibliotheken verknüpft ist, wird free von _free_dbg auf. Weitere Informationen dazu, wie der Heap während des Debuggingsprozesses verwaltet wird, finden Sie unter Der CRT-Debugheap.

free ist als __declspec(noalias) gekennzeichnet und bedeutet, dass die Funktion, die gewährleistet sind globale Variablen nicht zu ändern. Weitere Informationen finden Sie unter noalias.

Um dem Arbeitsspeicher freizugeben, der mit _malloca zugeordnet ist, verwenden Sie _freea.

Anforderungen

Funktion

Erforderlicher Header

free

<stdlib.h> und <malloc.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Im Beispiel für malloc.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Speicherbelegung

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea