_CrtCheckMemory
Confirme l’intégrité des blocs de mémoire alloués dans le tas de débogage (version de débogage uniquement).
Syntaxe
int _CrtCheckMemory( void );
Valeur retournée
Si elle réussit, _CrtCheckMemory
retourne TRUE
; sinon, la fonction retourne FALSE
.
Notes
La fonction _CrtCheckMemory
valide la mémoire allouée par le gestionnaire de tas de débogage en vérifiant le tas de base sous-jacent et en inspectant chaque bloc de mémoire. Si une incohérence de mémoire ou une erreur est rencontrée dans le tas de base sous-jacent, les informations d’en-tête de débogage ou les mémoires tampons de remplacement, _CrtCheckMemory
génère un rapport de débogage avec les informations décrivant la condition d’erreur. Quand _DEBUG
n’est pas défini, les appels à _CrtCheckMemory
sont supprimés lors du prétraitement.
Le comportement de _CrtCheckMemory
peut être contrôlé en définissant les champs de bits de l’indicateur à l’aide _crtDbgFlag
de la _CrtSetDbgFlag
fonction. L’activation du _CRTDBG_CHECK_ALWAYS_DF
champ bit ON entraîne _CrtCheckMemory
l’appel à chaque fois qu’une opération d’allocation de mémoire est demandée. Bien que cette méthode ralentit l’exécution, il est utile d’intercepter rapidement les erreurs. La désactivation du _CRTDBG_ALLOC_MEM_DF
champ de bits entraîne _CrtCheckMemory
la non-vérification du tas et le retour TRUE
immédiat.
Étant donné que cette fonction retourne TRUE
ou FALSE
, elle peut être passée à l’une _ASSERT
des macros pour créer un mécanisme de gestion des erreurs de débogage de base. L’exemple suivant provoque un échec d’assertion si l’altération est détectée dans le tas :
_ASSERTE( _CrtCheckMemory( ) );
Pour plus d’informations sur l’utilisation _CrtCheckMemory
d’autres fonctions de débogage, consultez les fonctions de création de rapports d’état du tas. Pour obtenir une vue d’ensemble de la gestion de la mémoire et du tas de débogage, consultez les détails du tas de débogage CRT.
Spécifications
Routine | En-tête requis |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Bibliothèques
Uniquement les versions de débogage des bibliothèques Runtime C.
Exemple
Pour obtenir un exemple d’utilisation _CrtCheckMemory
, consultez crt_dbg1
.