AfxCheckMemory
Essa função valida o pool de memória livre e imprime mensagens de erro conforme necessário.
BOOL AfxCheckMemory( );
Valor de retorno
Diferente de zero se nenhum erro de memória; se não 0.
Comentários
Se a função não detecta nenhum dano de memória, não imprime nada.
Todos os blocos de memória alocado atualmente no heap são verificados, inclusive aquelas atribuídos por new mas não os valores atribuídos por chamadas diretos a alocadores subjacentes de memória, como a função de malloc ou a função do windows de GlobalAlloc . Se qualquer bloco é localizado a ser danificado, uma mensagem será impressa à saída do depurador.
Se você incluir a linha
#define new DEBUG_NEW
em um módulo de programa, nas chamadas subsequentes a AfxCheckMemory mostram o nome do arquivo e o número da linha onde a memória foi atribuída.
Dica
Se o módulo tiver uma ou várias implementações de classes serializáveis, você deve colocar a linha de #define depois da chamada macro o mais recente de IMPLEMENT_SERIAL .
Esta função funciona somente na versão de depuração MFC.
Exemplo
CAge* pcage = new CAge(21); // CAge is derived from CObject.
Age* page = new Age(22); // Age is NOT derived from CObject.
*(((char*)pcage) - 1) = 99; // Corrupt preceding guard byte
*(((char*)page) - 1) = 99; // Corrupt preceding guard byte
AfxCheckMemory();
Requisitos
Header: afx.h