Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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 FALSEle 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 .