CMemoryState

CMemoryState no tiene una clase base.

CMemoryState proporciona una manera conveniente para detectar pérdidas de memoria en su programa. Una "pérdida de memoria" se produce cuando memoria para un objeto asignado en el montón pero no desasignado cuando ya no es necesaria. Tales fugas de memoria eventualmente pueden conducir a errores de la memoria. Hay varias formas de asignar y desasignar memoria en su programa:

El diagnóstico de CMemoryState sólo ayuda a detectar pérdidas de memoria causadas cuando asigna memoria utilizando el operador new es desasignado usa delete. Los otros dos grupos de funciones de administración de la memoria son para programas de C++ no y mezclándolos con Nueva y no se recomienda Eliminar en el mismo programa. Una macro adicional, DEBUG_NEW, se ofrece para reemplazar el operador new , cuando se necesitan el archivo y el número de la línea de seguimiento de las asignaciones de memoria. DEBUG_NEW se utilizará siempre que normalmente se utiliza el operador new.

Al igual que con otros diagnósticos, los diagnósticos de CMemoryState sólo están disponibles en las versiones de depuración de su programa. Una versión de depuración debe tener la constante _DEBUG define.

Si sospecha que su programa tiene una pérdida de memoria, puede utilizar las funciones de control, diferenciay DumpStatistics para descubrir la diferencia entre el estado de memoria (objetos asignados) en dos puntos diferentes en la ejecución del programa. Esta información puede ser útil para determinar si una función es limpiar todos los objetos que asigna.

Si simplemente sabiendo donde se produce el desequilibrio en la asignación y desasignación no proporciona suficiente información, puede utilizar la función DumpAllObjectsSince para volcar todos los objetos asignados desde la anterior llamada a Checkpoint. Este vertedero muestra el orden de asignación, el archivo de origen y la línea donde se asignó el objeto (si está utilizando DEBUG_NEW de asignación) y la derivación del objeto, su dirección y su tamaño. DumpAllObjectsSince llama también función de volcado de cada objeto para proporcionar información sobre su estado actual.

Para obtener más información acerca de cómo utilizar CMemoryState y otros diagnósticos, consulte Soporte de depuración de MFC en la Guía del programador de Visual C++.

&Notanbsp;  Las declaraciones de objetos de tipo CMemoryState y llamadas a funciones miembro deben ser entre corchetes por #if defined(_DEBUG)/#endif directivas. Esto hace que los diagnósticos de memoria a incluirse sólo en las versiones de su programa de depuración.

Miembros de la claseDiagrama de jerarquía

Index