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!
a mi no me da ningun problema. Has mirado si new te da NULL ?, aunque es raro.
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!!