_CrtIsValidPointer
Comprueba que un intervalo de memoria especificado es válido para lectura y escritura (solo versión de depuración).
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
Parámetros
address
Señala al comienzo del intervalo de memoria cuya validez se va a comprobar.size
Tamaño del intervalo de memoria especificado, en bytes.access
Accesibilidad de lectura y escritura que se va a determinar para el intervalo de memoria.
Valor devuelto
_CrtIsValidPointer devuelve TRUE si el intervalo de memoria especificado es válido para las operaciones especificadas. De lo contrario, la función devuelve el FALSE.
Comentarios
La función _CrtIsValidPointer comprueba que el intervalo de memoria que empieza en address y con una longitud de size bytes es válido para las operaciones de accesibilidad especificadas. Si access se establece en TRUE, el intervalo de memoria se comprueba para operaciones de lectura y escritura. Si access es FALSE, el intervalo de memoria solo se comprueba para operaciones de lectura. Cuando no se define _DEBUG, las llamadas a _CrtIsValidPointer se quitan durante el preprocesamiento.
Dado que esta función devuelve TRUE o FALSE, se puede pasar a una de las macros de _ASSERT para crear un mecanismo sencillo de control de errores de depuración. En el ejemplo siguiente se genera un error de aserción si el intervalo de memoria no es válido para operaciones de lectura y escritura:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Para obtener más información sobre el uso de _CrtIsValidPointer con otras funciones y macros de depuración, vea Macros para los informes. Para obtener información sobre cómo se asignan, inicializan y administran los bloques de memoria en la versión de depuración del montón base, vea Detalles del montón de depuración de CRT.
Requisitos
Rutina |
Encabezado necesario |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer es una extensión de Microsoft. Para obtener información sobre la compatibilidad, vea Compatibilidad.
Bibliotecas
Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.
Ejemplo
Vea el ejemplo del tema ys6cfhhh(v=vs.120).md.
Equivalente en .NET Framework
No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.