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

Voir aussi

Concepts

Macro MFC et Globals