Compartilhar via


_freea

Desaloca ou libera um bloco de memória.

void _freea( 
   void *memblock 
);

Parâmetros

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

Valor de retorno

Nenhum.

Comentários

The _freea função Desaloca um (bloco de memóriamemblock) que foi alocado anteriormente por uma telefonar para _malloca. _freea verifica 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 solicitado quando o bloco foi alocado.If memblock é NULL, o ponteiro será ignorado e _freea retorna imediatamente. Tentativa de liberar um ponteiro inválido (um ponteiro para um bloco de memória que não foi alocado pelo _malloca) podem afetam as solicitações subseqüentes de alocação e causar erros.

_freea chamadas free internamente se ele encontrar 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.

In Visual C++ 2005, se ocorrer um erro em liberar a memória errno é 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 disponível 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 telefonar 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 depurar das bibliotecas de time de execução C, particularmente com _malloc_dbg Recursos habilitados pela definição _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 depurar, consulte A Heap depurar CRT.

_freea está marcado como __declspec(noalias), que significa que a função é garantida não para modificar as variáveis global. 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.

Equivalente do NET Framework

Não aplicável. Para telefonar 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

realocar

_free_dbg

_heapmin