Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema tonto con c++

Iniciado por zunou, 20 de Agosto de 2010, 07:03:10 PM

« anterior - próximo »

zunou

Hola, resulta que he creado una clase para cargar y mostrar una serie de datos, coordenadas, etc..., pero me está dando problemas a la hora de definir mas tarde el objeto, por ejemplo, si yo defino el objeto fuera de la función principal, el programa funciona perfectamente:

obj objeto;

void main()
{
objeto.load(" objeto/.../.....");

while(1){

objeto.draw();

}

}

Pero si yo defino el objeto dentro del main, cuando ejecuto el programa, se produce un error, el caso es que al compilar no me da ningún error, ni nigun aviso.

lo que intento es tan sencillo como esto:



void main()
{
obj objeto; /// si lo pongo aquí ERROR
objeto.load(" objeto/.../.....");

while(1){

objeto.draw();

}

}

¿Alguien tiene idea de donde la puedo estar liando para que me de ese error?

Gracias ;)

gdl

Debería funcionar, pero si el programa que tienes es grande podría ser que al colocar el objeto dentro de la función (es decir, en la pila) haya por ahí un buffer overrun y te estés dando cuenta ahora.

También podría ser un problema de fiasco en inicialización y que haya por ahí una dependencia en el orden de evaluar los objetos globales de forma que al quitar el objeto de la secuencia de inicialización estática, ésta secuencia se reordene de manera que falla.

zunou

No sé, el programa no es que sea muy largo, lo que hace es leer los datos de un fichero, y almacenarlos en una serie de arrays, despues la funcion draw  toma esos datos y dibuja un polígono.

Creo que el problema puede estar en la funcion Load, que es la que almacena los datos en los distintos arrays. ¿Puede ser que esos arrays esten produciendo el problema?

zunou

Bueno, al final parece que se soluciona, si declaro el objeto como static, así que efectivamente hay algo que se modifica, esta solucion no creo que sea la mas correcta, porque realmente no he dado con el problema, pero bueno, al menos funciona  :D

saludos, y gracias por la pista.

IDandT

#4
Edito: Me he equivocado de hilo al postear.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.