Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SrCooper en 7 Julio 2013, 23:37 pm



Título: [C++]Cierre súbito de un programa
Publicado por: SrCooper en 7 Julio 2013, 23:37 pm
Buenas, estoy realizando un proyecto en c++ utilizando allegro. El proyecto consta de muchos archivos de cabecera para hacer videojuegos de una manera más sencilla. La idea fue de Daniel Acuña, de artebinario.cjb.net (una página ya cerrada). Yo solo estoy actualizandola, porque el diseño original fue hecho hace más de 10 años.

Consta de una serie de clases (como actor, game, etc) de las que se hereda para beneficio del usuario. Resulta que el primer programa que he hecho se compila perfectamente, pero en cuanto lo ejecuto, este se cierra repentinamente y devuelve esto:
Código:
Process terminated with status -1073741510 (0 minutes, 3 seconds)

Así que hice Debug y me sale Segmentation fault. No puedo escribir aquí todo el código, porque son muchos archivos y muchas líneas, pero os dejo una captura con los errores:

(http://img534.imageshack.us/img534/9255/grb4.jpg)
(En la línea en rojo pone "StageManager::draw(this=0x0)" )

Estoy seguro de que es algún fallo tonto, pero no se me ocurre qué puede ser y la verdad casi me duele la cabeza de pensar en el problema.
Un saludo


Título: Re: [C++]Cierre súbito de un programa
Publicado por: avesudra en 8 Julio 2013, 00:26 am
Es curioso porque el puntero this es igual  0x0 , lo que me lleva a pensar que no se ha inicializado el objeto de la clase StageManager correctamente, aunque no lo sé la verdad ¿Podrías poner la parte del código donde declaras el objeto tambien?

¡Un saludo!


Título: Re: [C++]Cierre súbito de un programa
Publicado por: SrCooper en 8 Julio 2013, 00:48 am
Ya está solucionado. Llevaba mucho tiempo programando y por el cansancio llamé dos veces a la misma función, porque hay una parte del código donde se llaman seguidas a dos funciones muy similares y me confundí y llamé a la misma dos veces, por eso el objeto no se había declarado correctamente.

En fin, me he dado cuenta de que en estos casos lo mejor es dejar de lado el problema un tiempo, descansar y volver a abordarlo más adelante.  ;)

Un saludo y gracias de todas maneras