Pregunta: | 378 - PROBLEMA AL RESERVAR MEMORIA |
Autor: | Eider J. Falla A. |
Hola, me esperanzo en ustedes para solucionar un gran dilema, el problema es de C/C++, y se basa principalmente en un proyecto de programación sobre las matriculas para estudiantes de una institución, el sistema maneja basicamente 3 conceptos, manejo de archivos, manejo de listas dinamicas doblemente enlazadas, y el manejo del modo grafico del C/C++ y su biblioteca en la lista manejamos C++, para ser usada como un objeto, y reservamos memoria con el argumento new, al parecer este argumento, al ser expuesto en un ciclo, (al cargar la información de los archivos), y junto con el modo grafico, me pisa, por asi decirlo, o me separa y usa memoria que es exclusiva del sistema operativo (DOS 6.22), y me crea un desborde de pila en la memoria principal, lo cual no me explico al tener tanta memoria disponible, y esto ocurre con unas pocas veces de uso... quisiera saber si alguna forma de direccionar el operador new o de manejarlo de tal forma que pueda ubicarme en memoria que no esta siendo usada, o tal vez deba quitar el manejo de listas... no se que pasa en realidad aqui, estamos utilizando el operador delete para liberar la memoria usada e incluso creamos una función llamada destruir() que me libera toda la lista, pero esto fue peor aun, no se si lo hicimos mal... ya que no somos muy buenos con el C++. ya que sus ayudas son horribles. apreciaria cualquier ayuda... cualquier comentario... cualquier posible causa del error.. o cualquier posible solución. |
Respuesta: | Chuy Saenz |
Primeramente un saludo,
no se pero se me ocurre utilizar un puntero tipo far que sirve para utlizar la memoria fuera de los 640kb co0nvancionales, con esto separa la memoria. |
Respuesta: | José Luis Torres Pantoja |
Ante todo un saludo. No se si ya resolverías tu problema, de no ser así ahi te va mi experiencia: Tengo bastante tiempo manejando el C/C++ para DOS y nunca he tenido esos problemas, es más yo pienso que puede estar sucediendo alguno de estos casos: 1.- dejas algun archivo abierto y nunca lo cierras 2.- abres más de una vez un archivo sin cerrarlo. 3.- cierras un archivo que no ha sido habierto. 4.- cierras más de una vez un archivo. incluso hasta puede ser tu rutina del ratón(si la utilizas): 1.- llamas a la rutina para mostrar el ratón dos veces 2.- llamas a la rutina de ocultar el ratón sin que éste esté visible. Tal vez parezcan raras estas causas pero créeme que suele suceder que esto te cree problemas. Si tu problema continúa no dudes en enviarme un mail Hasta luego. |
Respuesta: | Endos |
Por el gran tamaño de la respuesta, la hemos colocado en el archivo resp378.txt |