Condividi tramite


_freea

rilascia o libera un blocco di memoria.

void _freea( 
   void *memblock 
);

Parametri

  • memblock
    Precedentemente blocco di memoria allocata da liberare.

Valore restituito

Nessuno.

Note

_freeala funzione libera un blocco di memoria (memblock) che in precedenza era stata allocata da una chiamata _malloca._freea verifica che la memoria è stata allocata nell'heap o nello stack.Se è stato allocato nello stack, _freea non esegue alcuna operazione.Se è stato allocato nell'heap, il numero di byte liberati equivale al numero di byte necessari quando il blocco è stato allocato.se memblock viene NULL, il puntatore viene ignorato e _freea immediatamente restituisce.Il tentativo di liberare un puntatore non valido (un puntatore a un blocco di memoria che non è stato allocato da _malloca) potrebbe influire sulle richieste di allocazione successive e provocare errori.

_freea chiamate free internamente se rileva che la memoria allocata nell'heap.Se la memoria è nell'heap o nello stack è determinato da un marcatore inserito nella memoria all'indirizzo immediatamente prima della memoria allocata.

Se si verifica un errore in liberare la memoria, errno è impostato con informazioni dal sistema operativo sulla natura dell'errore.Per ulteriori informazioni, vedere errno, _doserrno, _sys_errlist e _sys_nerr.

dopo che un blocco di memoria è stato liberato, _heapmin riduce la quantità di memoria nell'heap merging coinvolgono le aree inutilizzate e la del sistema operativo.La memoria liberata non viene rilasciata al sistema operativo viene ripristinata al pool libero ed è disponibile per l'allocazione di nuovo.

una chiamata a _freea è necessario associare a tutte le chiamate a _malloca.È un errore chiamare _freea due volte la stessa memoria.Quando l'applicazione viene collegata a una versione di debug delle librerie di runtime del linguaggio C, soprattutto con differenze funzionalità abilitate definendo _CRTDBG_MAP_ALLOC, è più facile trovare le chiamate mancanti o duplicate a _freea.Per ulteriori informazioni su come l'heap è gestita durante il processo di debug, vedere L'heap di debug CRT.

_freea è contrassegnato __declspec(noalias)pertanto, la funzione viene sempre non per modificare le variabili globali.Per ulteriori informazioni, vedere noalias.

Requisiti

Funzione

Intestazione di associazione

_freea

<definito> e <malloc.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Esempio

Vedere l'esempio relativo a _malloca.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Vedere anche

Riferimenti

Allocazione di memoria

_malloca

calloc

malloc

differenze

realloc

_free_dbg

_heapmin