Una pérdida de memoria es cuando un programa hace que un consumo gradual pero constante de la memoria , haciendo que el programa utilice más memoria de la que necesita . A lo sumo , el programa sólo tiene que utilizar más memoria y ralentizar el equipo . En casos extremos se utilizarán memoria suficiente para causar otros programas de estrellarse debido a la falta de memoria disponible , el peor de los casos que se colgará su sistema operativo . En C + +, pérdidas de memoria pueden ser causados por varios errores diferentes en la codificación . El siguiente le mostrará cómo comprobar para ver si su programa tiene una pérdida de memoria y dónde encontrarlo . Instrucciones
1
Averigüe si su programa tiene una pérdida de memoria . Ejecute el programa a través de la depuración , escriba: ' _CrtDumpMemoryLeaks () '
La primera línea de código se lee " pérdidas de memoria detectados ! " Si no es así, el programa no tiene una pérdida de memoria .
2
rastrear la ubicación de la pérdida de memoria. La tercera línea de
' _CrtDumpMemoryLeaks () '
utilizado con la declaración:
' # define _CRTDBG_MAP_ALLOC '
le dirá el nombre de la presentar en el que se asigna la memoria perdida . También puede utilizar MFC para seguir las asignaciones de memoria . En MFC la macro: .
' DEBUG_NEW '
puede ser usado para rastrear las fugas de memoria
3
Ir al archivo indicado . Los malos codificación tendrán que ser localizado. Hay varias causas de la pérdida de memoria , uso incorrecto de new /delete , una eliminación fuera de lugar, punteros " perdidos " o un puntero sale del ámbito . Compruebe las líneas de código que se asigna la memoria y corregir cualquier problema. Compruebe si la memoria asignada en un bucle se libera en cada iteración. Asegúrese de que los punteros no pueden salir del ámbito antes de liberar memoria. Compruebe también que los códigos :
' malloc ' /' libre'
' nueva ' /' delete '
' new [] ' /delete [ ] '< br >
se utilizan correctamente
4
ejecutar el programa a través del depurador de nuevo escribiendo: . _CrtDumpMemoryLeaks () '
para ver si el problema persiste.