Compartilhar via


_freea

Desaloca ou libera um bloco de memória.

void _freea( 
   void *memblock 
);

Parâmetros

  • memblock
    Anteriormente alocado o bloco de memória para ser liberado.

Valor de retorno

Nenhum.

Comentários

O _freea função Desaloca um bloco de memória (memblock) que foi anteriormente alocado por uma chamada para _malloca._freeaverifica se a memória foi alocada no heap ou pilha.Se ela foi alocada na pilha, _freea não faz nada.Se ela foi alocada na pilha, o número de bytes liberadas equivale ao número de bytes solicitada quando o bloco foi alocado.Se memblock é NULL, o ponteiro é ignorado e _freea retorna imediatamente.Tentar liberar um ponteiro inválido (um ponteiro para um bloco de memória que não foi alocado pelo _malloca) podem afetar as solicitações de alocação subseqüentes e causar erros.

_freea chamadas free internamente se encontra que a memória é alocada no heap.Se a memória é no heap ou pilha é determinada por um marcador colocado na memória no endereço imediatamente anterior a memória alocada.

Se ocorrer um erro em liberar a memória, errno está definida com informações do sistema operacional sobre a 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, concentração as regiões não utilizadas e liberando-os para o sistema operacional.Memória liberada não é liberada para o sistema operacional é restaurada para o pool livre e está disponível para alocação novamente.

Uma chamada para _freea devem acompanhar todas as chamadas para _malloca.Também é um erro ao chamar _freea duas vezes na mesma memória.Quando o aplicativo está vinculado com uma versão de depuração das bibliotecas de tempo de execução C, particularmente com _malloc_dbg recursos habilitados pela definição de _CRTDBG_MAP_ALLOC, é mais fácil localizar ausentes ou duplicadas chamadas para _freea.Para obter mais informações sobre como a pilha é gerenciada durante o processo de depuração, consulte A pilha de depuração CRT.

_freeaestá marcado como __declspec(noalias), que significa que a função é garantida, não 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 de compatibilidade, consulte compatibilidade na introdução.

Exemplo

Consulte o exemplo para _malloca.

Equivalência do .NET Framework

Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Alocação de memória

_malloca

calloc

malloc

_malloc_dbg

possível realocar

_free_dbg

_heapmin