Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: O2 en 20 de Noviembre de 2002, 08:30:22 PM

Título: Problema con C++ : Access violation
Publicado por: O2 en 20 de Noviembre de 2002, 08:30:22 PM
                                Buenas:

Tengo un problema con unas clases y me preguntaba si alguien que supiera C++ podria comentarme por que sucede y como solucionarlo...

Tengo una clase y una funcion miembro tal que asi:





class CRGB{

public:



   CRGB();

   CRGB(float R,float G,float B);



   void CopiarDesde(CRGB& Clase);



   float m_R,m_G,m_B;

};





La funcion que me interesa es CopiarDesde:





void CRGB::CopiarDesde(CRGB& Clase)

{

   m_R=Clase.m_R;

   m_G=Clase.m_G;

   m_B=Clase.m_B;

}





Esto funciona bien cuando tengo clases sueltas:





CRGB Color(1.0f,1.0f,1.0f);

CRGB Copia;



Copia.CopiarDesde(Color);





Pero si intento hacer lo siguiente, es cuando recibo el error de Access Violation:





CRGB Colores[2];



Colores[0].m_R=1.0f;

Colores[0].m_G=1.0f;

Colores[0].m_B=1.0f;



int NumCopias=2;



CRGB* Copias=new CRGB[NumCopias];



Copias[0].CopiarDesde(Colores[0]);





Alguien sabria explicarme por que sucede esto y como solucionarlo?

Muchas gracias de antemano!                                
Título: Problema con C++ : Access violation
Publicado por: ethernet en 20 de Noviembre de 2002, 08:47:45 PM
a mi no me da ningun problema. Has mirado si new te da NULL ?, aunque es raro.
Título: Problema con C++ : Access violation
Publicado por: O2 en 20 de Noviembre de 2002, 09:22:26 PM
                                Si, compruebo el estado del puntero justo despues de hacer el new, y parece que esta bien.

Si depuro la aplicación paso a paso, el error lo da a intentar hacer el:





   m_R=Clase.m_R;





Me salta el maldito access violation ese :(

Puede ser un problema por pasar la clase por referencia en CopiarDesde() ?

Gracias por responder ethernet!!