disponibili
Rilascia o libera un blocco di memoria.
void free(
void *memblock
);
Parametri
- memblock
Blocco di memoria precedentemente allocata da liberare.
Note
La funzione free rilascia un blocco di memoria (memblock) precedentemente allocato da una chiamata a calloc, malloc, o realloc. Il numero di byte liberati è equivalente al numero di byte richiesto quando il blocco è stato allocato (o riallocato, nel caso di realloc). Se memblock è NULL, il puntatore viene ignorato e free terminerà immediatamente. Il tentativo di liberare un puntatore non valido (un puntatore a un blocco di memoria che non è stato allocato da calloc, malloc, o realloc) può influire sulle richieste di allocazione successive e provocare errori.
Se si verifica un errore nella liberazione della memoria, errno viene fornito con informazioni dal sistema operativo sulla natura dell'errore. Per ulteriori informazioni, vedere errno, _doserrno, _sys_errlist, and _sys_nerr.
Dopo che un blocco di memoria è stato liberato, _heapmin riduce la quantità di memoria libera nell'heap mediante l'unione delle aree inutilizzate e rilasciandole nuovamente al sistema operativo. La memoria liberata che non viene rilasciata al sistema operativo viene ripristinata al pool libero ed è disponibile nuovamente per l'allocazione.
Quando l'applicazione viene collegata a una versione di debug delle librerie di runtime del linguaggio C, free viene identificato come _free_dbg. Per ulteriori informazioni su come viene gestito l'heap durante il processo di debug, vedere L'heap di debug CRT.
free è contrassegnato __declspec(noalias), pertanto si garantisce che la funzione non modifichi variabili globali. Per ulteriori informazioni, vedere noalias.
Per liberare la memoria allocata con _malloca, utilizzare _freea.
Requisiti
Funzione |
Intestazione obbligatoria |
---|---|
free |
<stdlib.h> e <malloc.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Esempio
Vedere l'esempio relativo a malloc.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.