_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.