_CrtIsValidPointer
Vérifie qu'une plage mémoire spécifiée est valide pour la lecture et l'écriture (version de débogage uniquement).
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
Paramètres
address
Pointe vers le début de la plage mémoire dont la validité doit être testée.size
Taille de la plage mémoire spécifiée (en octets).access
Accessibilité en lecture/écriture à déterminer pour la plage mémoire.
Valeur de retour
_CrtIsValidPointer retourne TRUE si la plage mémoire spécifiée est valide pour les opérations indiquées. Dans le cas contraire, la fonction retourne FALSE.
Notes
La fonction _CrtIsValidPointer vérifie que la plage mémoire qui commence à address et s'étend sur size octets est valide pour les opérations d'accessibilité spécifiées. Quand access a la valeur TRUE, la plage mémoire est vérifiée pour la lecture et l'écriture. Quand access a la valeur FALSE, la plage mémoire n'est validée que pour la lecture. Quand _DEBUG n'est pas défini, les appels à _CrtIsValidPointer sont supprimés lors du prétraitement.
Comme cette fonction retourne TRUE ou FALSE, elle peut être passée à l'une des macros _ASSERT pour créer un mécanisme de gestion des erreurs de débogage simple. L'exemple suivant provoque un échec d'assertion si la plage mémoire n'est pas valide pour les opérations à la fois de lecture et d'écriture :
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Pour plus d'informations sur la façon dont _CrtIsValidPointer peut être utilisé avec d'autres macros et fonctions de débogage, voir Macros pour la création de rapports. Pour plus d'informations sur la façon dont les blocs de mémoire sont alloués, initialisés et gérés dans la version de débogage du tas de base, voir Détails du tas de débogage CRT.
Configuration requise
Routine |
En-tête requis |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer est une extension Microsoft. Pour plus d'informations sur la compatibilité, voir Compatibilité.
Bibliothèques
Uniquement les versions de débogage des bibliothèques Runtime C.
Exemple
Voir l'exemple pour la rubrique _CrtIsValidHeapPointer.
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, voir Exemples d'appel de plateforme.