Logo

¡Bienvenido a Stratos!

Acceder

Foros



Problema con C++ : Access violation

Iniciado por O2, 20 de Noviembre de 2002, 08:30:22 PM

« anterior - próximo »

O2

                                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!                                

ethernet

a mi no me da ningun problema. Has mirado si new te da NULL ?, aunque es raro.

O2

                                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!!                                






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.
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.