_CrtIsValidPointer
Vérifie qu’un pointeur n’est pas null. Dans les versions de la bibliothèque Runtime C antérieures à Visual Studio 2010, vérifie qu'une plage mémoire spécifiée est valide pour la lecture et l'écriture (version de débogage uniquement).
Syntaxe
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 retournée
_CrtIsValidPointer
retourne TRUE
si le pointeur spécifié n’est pas null. Dans les versions de bibliothèque CRT avant Visual Studio 2010, retourne TRUE
si la plage de mémoire est valide pour l’opération ou les opérations spécifiées. Sinon, la fonction retourne FALSE
.
Notes
Dans la bibliothèque CRT dans Visual Studio 2010 et versions ultérieures, les paramètres et access
les size
paramètres sont ignorés, et _CrtIsValidPointer
vérifie uniquement que le paramètre spécifié address
n’est pas null. Étant donné que ce test est facile à effectuer vous-même, nous vous déconseillons d’utiliser cette fonction. Dans les versions antérieures à Visual Studio 2010, la fonction vérifie que la plage mémoire débutant à address
et s'étendant pour des octets size
est valide pour la ou les opérations d'accessibilité spécifiées. Quand access
la valeur est définie TRUE
, la plage de mémoire est vérifiée pour la lecture et l’écriture. Quand access
c’est FALSE
le cas, la plage de mémoire est validée uniquement pour la lecture. Quand _DEBUG
n’est pas défini, les appels à _CrtIsValidPointer
sont supprimés lors du prétraitement.
É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 la plage de mémoire n’est pas valide pour les opérations de lecture et d’écriture :
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Pour plus d’informations sur _CrtIsValidPointer
l’utilisation d’autres fonctions et macros de débogage, consultez 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, consultez les détails du tas de débogage CRT.
Spécifications
Routine | En-tête requis |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer
est une extension Microsoft. Pour plus d’informations sur la compatibilité, consultez Compatibilité.
Bibliothèques
Uniquement les versions de débogage des bibliothèques Runtime C.
Exemple
Consultez l’exemple de l’article _CrtIsValidHeapPointer
.