Partager via


AfxCheckMemory

Cette fonction valide le pool de mémoire disponible et affiche des messages d'erreur selon les besoins.

BOOL AfxCheckMemory( );

Valeur de retour

Une valeur différente de zéro si aucune erreur de mémoire ; sinon 0.

Notes

Si la fonction ne détecte aucune altération de la mémoire, elle n'imprime aucun effet.

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 des appels directs aux allocateurs de mémoire sous-jacents, tels que la fonction malloc ou la fonction Windows GlobalAlloc. Si un bloc est endommagé, un message est imprimé à la sortie du débogueur.

Si vous incluez la ligne

#define new DEBUG_NEW

dans un module de programme, alors les appels suivants à AfxCheckMemory indiquent le nom et le numéro de ligne où la mémoire a été allouée.

Notes

Si votre module contient une ou plusieurs implémentations des classes sérialisables, alors vous devez mettre à jour la ligne #define après le dernier appel de macro IMPLEMENT_SERIAL.

Cette fonction ne fonctionne que dans la version de débogage de 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

En-tête : afx.h

Voir aussi

Concepts

macro MFC et Globals