Compartilhar via


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

Consulte também

Referência

Alocação de memória

_malloca

calloc

malloc

_malloc_dbg

realloc

_free_dbg

_heapmin