_CrtIsMemoryBlock
New Complex.h Functions
New Math.h functions
New fenv.h functions
and
div
eof
not
or
xor
New stdlib.h functions
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo de forma manual. 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 válido de tipo de bloque del montón de depuración (solo versión de depuración).

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 del bloque o 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 del archivo de código fuente o NULL.

_CrtIsMemoryBlock devuelve TRUE si el bloque de memoria especificado está en el montón local y tiene un identificador válido de tipo de bloque del montón de depuración; de lo contrario, la función devuelve FALSE.

La función _CrtIsMemoryBlock comprueba que un bloque de memoria especificado está en el montón local de la aplicación y que tiene un identificador de tipo de bloque válido.Esta función también se puede usar para obtener el número de orden de la asignación de objetos, y el nombre y el número de línea del archivo de código fuente en el que se solicitó la asignación del bloque de memoria originalmente.Si se pasan valores no nulos para los parámetros requestNumber, filename o linenumber, _CrtIsMemoryBlock establece estos parámetros en los valores del encabezado de depuración del bloque de memoria, si encuentra el bloque en el montón local.Cuando no se define _DEBUG, las llamadas a _CrtIsMemoryBlock se quitan durante el preprocesamiento.

Si _CrtIsMemoryBlock produce un error, devuelve FALSE y los 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, 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 la dirección especificada no se está en el montón local:

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

Para obtener más información sobre el uso de _CrtIsMemoryBlock 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

_CrtIsMemoryBlock

<crtdbg.h>

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

Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.

Vea el ejemplo del tema .

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.

Mostrar:
© 2016 Microsoft