AfxCheckMemory
Esta 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 não há erros de memória; Caso contrário, 0.
Comentários
Se a função não detectar nenhum corrupção de memória, ele imprime nada.
Todos os blocos de memória atualmente alocados no heap são verificados, inclusive aqueles alocados pelo nova mas não os alocados pelo chamadas diretas para subjacente alocadores de memória isenta, como o malloc função ou a GlobalAlloc função do Windows.Se for encontrado qualquer bloco corrompido, uma mensagem é impressa na saída do depurador.
Se você incluir a linha
#define new DEBUG_NEW
em um módulo de programa, as chamadas subseqüentes, em seguida, a AfxCheckMemory mostrar o nome do arquivo e linha número onde a memória foi alocada.
Observação |
---|
Se seu módulo contém uma ou mais implementações de classes serializáveis, você deve colocar o #define linha após o último IMPLEMENT_SERIAL chamada de macro. |
Essa função funciona apenas na versão de depuração do 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
Cabeçalho: Afx. h