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