C/Visual C - URGENTE!!!: Problema de memoria

 
Vista:

URGENTE!!!: Problema de memoria

Publicado por Alicia (4 intervenciones) el 01/09/2004 12:14:54
Hola a tod@s!!

Estoy programando una aplicacion con Visual C++ basada en dialogos, hace poco que programo en este lenguaje y no lo domino.. Al ejecutar el programa me sale un cartel de "no hay Suficiente Memoria".Con el Debugger veo que sale este mensaje al intentar definir una variable de una clase X que he creado en el interfazDlg.cpp. A lo largo de esta clase he ido liberando la memoria de las variables locales que iba usando(que son matrices tridimensionales), y he repasado los constructores y destructores de las clase que estoy usando pero no veo dónde estoy reservando mem de más... ¿qué más pruebas puedo hacer?¿qué debo comprobar?¿por dónde puede estar el error? Ando un poco perdida con este error...:(

gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE!!!: Problema de memoria

Publicado por chuidiang (677 intervenciones) el 01/09/2004 14:31:19
Si X es la clase que te da problemas de memoria, haz las siguientes pruebas

printf ("%d\n", sizeof (X));

Esto debería darte el tamaño de X. Si es demasiado grande, quizás no puedas instanciarla. Esto te puede pasar, por ejemplo, si uno de los atributos de la clase es un array de dimension demasiado grande.

Si X no es muy grande deberias meter el debugger y parar la ejecución justo antes de llamar al constructor, ejecutar el constructor paso a paso con el debugger y ver qué linea falla. Si no quieres meter debugger, haz pruebas comentando y descomentando lineas en el constructor de dicha clase. Comienza comentando todo el codigo del constructor y luego descomentando las lineas poco a poco.

Se buena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE!!!: Problema de memoria

Publicado por fernando.gomez (1603 intervenciones) el 01/09/2004 17:28:30
Como comentario adicional, recuerda que si tienes un vector de clases instanciadas con el operador new, al final, cuando eliminas la matriz, debieras tener cuidado en eliminarla así:

delete [ ] miMatriz;

en vez de:

delete miMatriz;

para que así te elimine cada uno de tus elementos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar