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
Este tema aún no ha recibido ninguna valoración - Valorar este tema

_CrtMemDifference

Compara dos estados de memoria y devuelve sus diferencias (versión de depuración solo).

int _CrtMemDifference( 
   _CrtMemState *stateDiff,
   const _CrtMemState *oldState,
   const _CrtMemState *newState 
);
stateDiff

Puntero a una estructura de _CrtMemState que se usa para almacenar las diferencias entre los dos estados de memoria (devueltas).

oldState

Puntero a un estado anterior de memoria (estructura de_CrtMemState ).

newState

Puntero a un estado posterior de memoria (estructura de_CrtMemState ).

Si los estados de memoria son significativamente diferentes, _CrtMemDifference devuelve TRUE. si no, la función devuelve FALSE.

La función de _CrtMemDifference compara oldState y newState y almacena sus diferencias en stateDiff, que se pueden utilizar en la aplicación para detectar pérdidas de memoria y otros problemas de memoria. Cuando _DEBUG no está definido, las llamadas a _CrtMemDifference se quitan durante el preprocesamiento.

newState y oldState deben cada ser un puntero válido a una estructura de _CrtMemState , definido en Crtdbg.h, que se ha completado por _CrtMemCheckpoint antes de llamar a _CrtMemDifference. stateDiff debe ser un puntero a una instancia previamente asignada de la estructura de _CrtMemState . Si stateDiff, newState, o oldState es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno, _doserrno, _sys_errlist, y _sys_nerr se establece en EINVAL y la función devuelve FALSE.

_CrtMemDifference compara los valores de campo de _CrtMemState de los bloques de oldState a los de newState y almacena el resultado en stateDiff. Cuando el número de tipos asignados de bloque o el número total de bloques asignados para cada tipo diferencia entre los dos estados de memoria, los estados se significativamente diferentes. La diferencia entre la cantidad mayor asignado nunca inmediatamente para los dos estados y la diferencia entre las asignaciones totales para los dos estados también se almacenan en stateDiff.

De forma predeterminada, los bloques internos en tiempo de ejecución de C (_CRT_BLOCK) no se incluyen en operaciones del estado de la memoria. La función de _CrtSetDbgFlag se puede utilizar para girar el bit de _CRTDBG_CHECK_CRT_DF de _crtDbgFlag para incluir estos bloques en la detección de pérdidas y otras operaciones del estado de la memoria. Los bloques de memoria liberada (_FREE_BLOCK) no _CrtMemDifference para devolver TRUE.

Para obtener más información sobre las funciones de estado de la pila y la estructura de _CrtMemState , vea Funciones que indican el estado del montón. 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 La administración de memoria y el montón de depuración.

rutina

Encabezado necesario

encabezado opcional

_CrtMemDifference

<crtdbg.h>

<errno.h>

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

bibliotecas: Versiones de depuración de Características de la biblioteca CRT únicamente.

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

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.