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
, malloc
o 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_errlist
e _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