Condividi tramite


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.

Vedere anche

Riferimenti

Allocazione di memoria

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea