AfxCheckMemory
Cette fonction valide le pool de mémoire disponible et imprime les messages d'erreur si nécessaire.
BOOL AfxCheckMemory( );
Valeur de retour
Une valeur différente de zéro si aucune erreurs de mémoire ; sinon 0.
Notes
Si la fonction ne détecte aucune altération de la mémoire, il n'affiche rien.
Tous les blocs de mémoire actuellement alloués sur le tas sont activés, y compris ceux alloués par new mais pas ceux alloués par les appels directs aux allocateurs de mémoire sous-jacents, tels que la fonction d' malloc ou la fonction Windows de GlobalAlloc .Si tout bloc s'avère pour être endommagé, un message est imprimé à la sortie du débogueur.
Si vous incluez la ligne
#define new DEBUG_NEW
dans un module de programme, les appels suivants à AfxCheckMemory indiquent le nom de fichier et le numéro de ligne où la mémoire a été allouée.
[!REMARQUE]
Si votre module contient un ou plusieurs implémentations des classes sérialisables, vous devez mettre la ligne d' #define après la dernière macro-instruction d' IMPLEMENT_SERIAL .
Cette fonction s'exécute uniquement dans la version debug des MFC.
Exemple
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();
Configuration requise
Header: afx.h