Versões de depuração de funções de alocação de Heap
A biblioteca de tempo de execução c contém especiais versões de depuração das funções de alocação de heap.Essas funções têm os mesmos nomes que o lançamento de versões com _dbg acrescentada a elas.Este tópico descreve as diferenças entre a versão de uma função CRT e a versão de _dbg usando malloc e _malloc_dbg como exemplos.
Quando DEBUG é definida, a CRT mapeia todas as malloc chama _malloc_dbg.Portanto, você não precisa reescrever o seu código usando _malloc_dbg em vez de malloc para receber os benefícios durante a depuração.
Talvez você queira chamar _malloc_dbg explicitamente, entretanto.Chamando _malloc_dbg explicitamente alguns adicionou benefícios:
Controle _CLIENT_BLOCK digite alocações.
Armazenar o número de arquivo e linha de origem onde ocorreu a solicitação de alocação.
Se não desejar converter seu malloc chama _malloc_dbg, você pode obter as informações do arquivo de origem definindo _CRTDBG_MAP_ALLOC, que faz com que o mapa de pré-processador diretamente para todas as chamadas para malloc para _malloc_dbg em vez de depender de um invólucro malloc.
Para controlar os tipos separados de alocações em blocos de cliente, você deve chamar _malloc_dbg diretamente e definir o blockType parâmetro para _CLIENT_BLOCK.
Quando Debug não for definido, chamadas para malloc não são afetados, chamadas de _malloc_dbg são resolvidos para malloc, a definição de _CRTDBG_MAP_ALLOC será ignorado e informações de arquivo de origem referentes à solicitação de alocação não são fornecidas.Porque malloc não tem um parâmetro de tipo de bloco, solicitações de _CLIENT_BLOCK tipos são tratados como alocações padrão.