Partilhar via


_free_dbg

Libera um bloco de memória no heap (somente a versão de depuração).

Sintaxe

void _free_dbg(
   void *userData,
   int blockType
);

Parâmetros

userData
Ponteiro para o bloco de memória alocado a ser liberado.

blockType
Tipo do bloco de memória alocado a ser liberado: _CLIENT_BLOCK, _NORMAL_BLOCK ou _IGNORE_BLOCK.

Comentários

A _free_dbg função é uma versão de depuração da free função. Quando _DEBUG não estiver definido, cada chamada para _free_dbg é reduzida a uma chamada para free. free e _free_dbg liberam um bloco de memória no heap de base, mas _free_dbg acomoda dois recursos de depuração: a capacidade de manter blocos liberados na lista vinculada do heap para simular condições de baixa memória e um parâmetro de tipo de bloco para liberar tipos de alocação específicos.

O _free_dbg realiza uma verificação de validade em todos os arquivos e locais de bloco especificados antes de realizar a ação de liberação. Não se espera que o aplicativo forneça essas informações. Quando um bloco de memória é liberado, o gerenciador de heap de depuração verifica automaticamente a integridade dos buffers em ambos os lados da parte do usuário. Ele emite um relatório de erros se detectar uma substituição. Se o _CRTDBG_DELAY_FREE_MEM_DF campo de bits do _crtDbgFlag sinalizador for definido, o bloco liberado será preenchido com o valor 0xDD, atribuído ao _FREE_BLOCK tipo de bloco e mantido na lista vinculada de blocos de memória do heap.

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, _doserrno, _sys_errlist e _sys_nerr.

Para obter informações sobre como os blocos de memória são alocados, inicializados e gerenciados na versão de depuração do heap base, consulte Detalhes do heap de depuração do CRT. Para obter informações sobre os tipos de bloco de alocação e como eles são usados, consulte Tipos de blocos no heap de depuração. Para obter informações sobre as diferenças entre chamar uma função de heap padrão e a versão de depuração, consulte Depurar versões de funções de alocação de heap.

Requisitos

Rotina Cabeçalho necessário
_free_dbg <crtdbg.h>

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

Exemplo

Para encontrar um exemplo de como usar _free_dbg, confira crt_dbg2.

Confira também

Rotinas de depuração
_malloc_dbg