Frei
Gibt gemeinsam oder gibt einen Speicherblock frei.
void free(
void *memblock
);
Parameter
- memblock
Zuvor reservierter Speicherblock freigegeben werden sollen.
Hinweise
Die free-Funktion gibt einen Speicherblock frei ()memblockvorher durch einen Aufruf von calloc, mallocoder realloczugeordnet wurde.Die Anzahl der freigegebenen Bytes beträgt und der Anzahl der angeforderten Bytes sein, als der Block zugeordnet wurde (oder, im Falle reallocneu reserviert werden.)Wenn memblockNULList, 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, belegt wurde auf mallocoder realloc) freizugeben und Zuordnungen folgenden Anforderungen beeinflussen möglicherweise Fehler verursacht.
Wenn ein Fehler auftritt, wenn er den Speicher freigibt, ist errno mit Informationen aus dem Betriebssystem auf der Art des Fehlers festgelegt.Weitere Informationen finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.
Nachdem ein Speicherblock freigegeben wurde, minimiert _heapmin die Menge des freien Arbeitsspeichers auf dem Heap, indem Sie die nicht verwendeten Bereiche verschmilzt und sie wieder an das Betriebssystem freigegeben wird.Freigegebener Speicher, der nicht für das Betriebssystem freigegeben wird, wird das Freigeben Pool wiederhergestellt und zur Zuordnung wieder verfügbar.
Wenn die Anwendung mit einer Debugversion der C-Laufzeitbibliotheken verknüpft ist, wird free zu _free_dbgauf.Weitere Informationen darüber, wie der Heap während des Debuggens Prozesses verwaltet wird, finden Sie unter Der CRT-Debugheap.
free ist als __declspec(noalias)und bedeutet, dass die Funktion nicht garantiert globale Variablen zu ändern.Weitere Informationen finden Sie unter noalias.
Um den Speicher freigeben _mallocazugeordnet ist, verwenden Sie _freea.
Anforderungen
Funktion |
Erforderlicher Header |
---|---|
free |
<stdlib.h> und <malloc.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
Beispiel
Weitere Informationen finden Sie im Beispiel für malloc.
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.