Condividi tramite


free

Dealloca o libera un blocco di memoria.

Sintassi

void free(
   void *memblock
);

Parametri

memblock
Blocco di memoria precedentemente allocata da liberare.

Osservazioni:

La funzione free dealloca un blocco di memoria (memblock) precedentemente allocato da una chiamata a calloc, malloc o realloc. Il numero di byte liberati equivale al numero di byte richiesti quando il blocco è stato allocato (o riallocato, per realloc). Se memblock è NULL, il puntatore viene ignorato e free restituisce immediatamente . Il tentativo di liberare un puntatore non valido (un puntatore a un blocco di memoria non allocato da calloc, malloco realloc) può influire sulle richieste di allocazione successive e causare errori.

Se si verifica un errore nel liberare la memoria, errno viene impostato con informazioni dal sistema operativo sulla natura dell'errore. Per altre informazioni, vedereerrno, _doserrno, _sys_errliste _sys_nerr.

Dopo che un blocco di memoria è stato liberato, _heapmin riduce al minimo la quantità di memoria libera nell'heap fondendo le aree inutilizzate e rilasciandole nuovamente nel sistema operativo. La memoria liberata che non viene rilasciata al sistema operativo viene ripristinata nel pool gratuito ed è nuovamente disponibile per l'allocazione.

Quando l'applicazione è collegata a una versione di debug delle librerie di runtime C, free viene risolto in _free_dbg. Per altre informazioni sulla gestione dell'heap durante il processo di debug, vedere Heap di debug CRT.

free è contrassegnato __declspec(noalias), pertanto si garantisce che la funzione non modifichi le variabili globali. Per ulteriori informazioni, vedere noalias.

Per liberare memoria allocata con _malloca, usare _freea.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
free <stdlib.h> e <malloc.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Vedere l'esempio per malloc.

Vedi anche

Allocazione di memoria
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea