free

Desaloca ou libera um bloco de memória.

Sintaxe

void free(
   void *memblock
);

Parâmetros

memblock
Bloqueio de memória anteriormente alocado a ser liberado.

Comentários

A função free desaloca um bloco de memória (memblock) que foi alocado anteriormente por uma chamada a calloc, malloc ou realloc. O número de bytes liberados é equivalente ao número de bytes solicitados quando o bloco foi alocado (ou realocado, no caso de realloc). Se memblock for NULL, o ponteiro será ignorado e free será retornado imediatamente. A tentativa de liberar um ponteiro inválido (um ponteiro para um bloco de memória que não foi alocado pelo calloc , malloc ou realloc ) pode afetar as solicitações de alocação subsequentes e causar erros.

Se ocorrer um erro ao liberar a memória, o errno é definido com informações do sistema operacional sobre a natureza da falha. Para obter mais informações, consulte errno , _sys_errlist_doserrno , e _sys_nerr.

Após a liberação de um bloco de memória, _heapmin o minimiza a quantidade de memória livre no heap, unindo as regiões não usadas e liberando-as de volta para o sistema operacional. A memória liberada que não foi liberada para o sistema operacional é restaurada para o pool livre e está disponível para alocação novamente.

Quando o aplicativo é vinculado a uma versão de depuração das bibliotecas de tempo de execução do C, free o é resolvido para _free_dbg . Para obter mais informações sobre como o heap é gerenciado durante o processo de depuração, consulte The CRT Debug Heap (O heap de depuração do CRT).

free é marcado como __declspec(noalias), o significa que há uma garantia de que a função não modifica variáveis globais. Para obter mais informações, consulte noalias.

Para liberar memória alocada com _malloca o, use _freea .

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, consulte estado global no CRT.

Requisitos

Função Cabeçalho necessário
free <stdlib.h> e <malloc.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Consulte o exemplo para malloc .

Consulte também

Alocação de memória
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea