Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_CrtIsMemoryBlock

Vérifie qu'un bloc de mémoire spécifié est dans le tas local et qu'il possède un identificateur de bloc de tas de débogage valide (version Debug uniquement).

int _CrtIsMemoryBlock( 
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *linenumber 
);

[in] userData

Pointeur du début du bloc de mémoire à vérifier.

[in] size

Taille des données spécifiées en octets ;

[out] requestNumber

Pointeur du numéro d'allocation du bloc ou NULL.

[out] filename

Le pointeur du nom du fichier source qui a demandé le block ou NULL.

[out] linenumber

Pointeur du numéro de ligne dans le fichier source ou NULL.

_CrtIsMemoryBlock retourne TRUE si le bloc de mémoire spécifié se trouve dans le tas local et possède un identificateur de bloc de tas de débogage valide ; sinon, la fonction retourne FALSE.

La fonction _CrtIsMemoryBlock vérifie qu'un bloc de mémoire spécifié se trouve dans le tas local de l'application et qu'il possède un identificateur de bloc valide. Cette fonction peut également être utilisée pour obtenir le numéro de commande d'allocation d'objet et le nom du fichier source/numéro de ligne où l'allocation de bloc de mémoire a été initialement demandée. Passer des valeurs non null pour les paramètresrequestNumber, filename, ou _CrtIsMemoryBlock implique que linenumber définit ces paramètres avec les valeurs dans l'en-tête du débogage du bloc de mémoire s'il trouve le bloc dans le tas local. Lorsque _DEBUG n'est pas défini, Les appels de _CrtIsMemoryBlock sont supprimés pendant le prétraitement.

Si _CrtIsMemoryBlock échoue, il retourne FALSE et les paramètres de sortie sont initialisés aux valeurs par défaut : requestNumber et lineNumber ont la valeur 0 et filename a la valeur NULL.

Puisque cette fonction retourne TRUE ou FALSE, elle peut être passée à l'une des macros _ASSERT pour créer un mécanisme simple de gestion des erreurs de débogage L'exemple suivant provoque un échec d'assertion si l'adresse spécifiée ne se trouve pas dans le tas local :

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber, 
&filename, &linenumber ) );

Pour plus d'informations sur la façon dont _CrtIsMemoryBlock peut être utilisé avec d'autres fonctions et des macros de débogage, consultez Macros pour la création de rapports. Pour obtenir des informations sur la façon dont les blocs de mémoire sont alloués, initialisés, et gérés dans la version Debug du tas de base, consultez Détails du tas de débogage CRT.

Routine

En-tête requis

_CrtIsMemoryBlock

<crtdbg.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Bibliothèques

Seulement les versions debug des bibliothèques Runtime C.

Consultez l'exemple pour le sujet _CrtIsValidHeapPointer.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Ajouts de la communauté

Afficher:
© 2015 Microsoft