¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_CrtIsMemoryBlock

Comprueba que un bloque de memoria especificado está en el montón local y que tiene un identificador en bloques de la pila completa de depuración (versión de depuración solo).

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

[in] userData

Puntero al principio del bloque de memoria que se va a comprobar.

[in] size

Tamaño del bloque especificado (en bytes).

[out] requestNumber

Puntero al número de asignación de bloque o de NULL.

[out] filename

Puntero al nombre del archivo de código fuente que solicitó el bloque o NULL.

[out] linenumber

Puntero al número de línea en el archivo de código fuente o NULL.

_CrtIsMemoryBlock devuelve TRUEsi el bloque de memoria especificado se encuentra dentro del montón local y tiene un identificador en bloques de pila válida de depuración; si no, la función devuelve FALSE.

La función de _CrtIsMemoryBlock comprueba que un bloque de memoria especificado se encuentra dentro del montón local de la aplicación y que tiene un identificador en bloques válido. Esta función se puede utilizar para obtener el número de orden de la asignación de objetos y el nombre del archivo y el número de línea donde la asignación del bloque de memoria se solicitó originalmente. Pasando los valores no NULL para requestNumber, filename, o las causas _CrtIsMemoryBlock de los parámetros de linenumber de establecer estos parámetros a los valores del encabezado de depuración del bloque de memoria, si encuentra el bloque en el montón local. Cuando _DEBUG no está definido, las llamadas a _CrtIsMemoryBlock se quitan durante el preprocesamiento.

Si se produce _CrtIsMemoryBlock , devuelve FALSE y parámetros de salida se inicializan con los valores predeterminados: requestNumber y lineNumber se establecen en 0 y filename se establece en NULL.

Dado que esta función devuelve TRUE o FALSE, puede pasar a una de las macros de _ASSERT para crear un mecanismo sencillo de control de errores de depuración. El ejemplo siguiente se genera un error de aserción si la dirección especificada no se encuentra dentro del montón local:

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

Para obtener más información sobre cómo _CrtIsMemoryBlock se puede utilizar con otras funciones y macros de depuración, vea Utilizando las macros para comprobación e informes. Para obtener información sobre cómo los bloques de memoria se asignan, inicialice, y se administran en la versión de depuración del montón base, vea Administración de memoria y el montón de depuración.

rutina

Encabezado necesario

_CrtIsMemoryBlock

<crtdbg.h>

Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.

bibliotecas

Versiones de depuración de Bibliotecas en tiempo de ejecución de C únicamente.

Vea el ejemplo para el tema de _CrtIsValidHeapPointer .

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft