_freea
Desaloca ou libera um bloco de memória.
void _freea(
void *memblock
);
Parâmetros
- memblock
Bloco de memória alocado anteriormente seja liberado.
Valor de retorno
Nenhum.
Comentários
A função de _freea desaloca um bloco de memória (memblock) que é atribuído anteriormente por uma chamada a _malloca. _freea verifica se a memória foi alocada no heap ou na pilha. Se foi alocada na pilha, _freea não fará nada. Se foi alocada no heap, o número de bytes liberados equivale ao número de bytes necessários quando o pacote foi atribuído. Se memblock é NULL, o ponteiro será ignorado e _freea retorna imediatamente. Tente liberar um ponteiro inválido (um ponteiro para um bloco de memória que não foi atribuído por _malloca) podem afetar solicitações subsequentes de alocação e causar erros.
o _freea chama free internamente se encontra o que a memória é atribuída no heap. Se a memória estiver no heap ou na pilha é determinado por um marcador colocado na memória do endereço imediatamente antes da memória alocada.
Se ocorrer um erro em liberar a memória, errno é definido com informações do sistema operacional na natureza da falha. Para obter mais informações, consulte errno, _doserrno, _sys_errlist e _sys_nerr.
Depois que um bloco de memória foi liberado, _heapmin minimiza a quantidade de memória livre no heap coalescendo as regiões não usado e liberação dos de volta ao sistema operacional. A memória liberada que não é liberada para o sistema operacional for restaurada para o pool livre e está disponível para alocação novamente.
Uma chamada para _freea deve controlar todas as chamadas a _malloca. Também é um erro para chamar duas vezes _freea na mesma memória. Quando o aplicativo é vinculado a uma versão de depuração das bibliotecas de tempo de execução C, especialmente com recursos de _malloc_dbg habilitada definindo _CRTDBG_MAP_ALLOC, é mais fácil localizar ausentes ou chamadas duplicados a _freea. Para obter mais informações sobre como o heap é gerenciado durante o processo de depuração, consulte O heap de depuração do CRT.
_freea é marcado __declspec(noalias), o que significa que a função não é garantida para modificar as variáveis globais. Para obter mais informações, consulte noalias.
Requisitos
Função |
Cabeçalho necessário |
---|---|
_freea |
<stdlib.h> e <malloc.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.
Exemplo
Consulte o exemplo de _malloca.
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.