Tengo un problema muy extraño con un juego de invasores del espacio en el que estoy trabajando. Básicamente recibo un error de violación de acceso:0xC0000005: Acceso a la ubicación de lectura de la infracción 0x00000000
Unhandled exception at 0x5edad442 (msvcr100d.dll) in SpaceInvaders.exe: 0xC0000005: Access violation reading location 0x00000000.
cuando incluyo el fragmento de código siguiente. Visual Studio me lleva a "strcmp.asm" cuando se depura. Tenga en cuenta que no estoy usando strcmp() en ninguno de mis códigos. ¿Hay algún problema con el código o es un problema que está más allá del alcance de lo que he incluido? Gracias por cualquier ayuda
const char* invarray[] = {"invader0.png", "invader1.png", "invader2.png", "invader3.png", "invader4.png"};
int i=0;
//Creates 55 invaders
for (int y=0; y<250; y+=50){
for (int x=0; x<550;x+=50){
Invader inv(invarray[y/50], x+50, y+550, 15, 15, 1, false, 250);
invaders[i] = inv;
}
}
Invader constructor:
Invader::Invader(const char *pic, int x, int y, int w, int h, bool dir, bool des, int point) : MovingObject(pic, x, y, w, h) , direction(dir), destroyed(des), b(0), points(point){};
MovingObject Constructor
MovingObject::MovingObject(const char *pic, int x, int y, int w, int h):picture(pic), positionX(x), positionY(y), width(w), height(h) {};
Mostrar código dentro del constructor de Invader –
El mensaje de error sugiere que esta es una referencia de puntero nulo, pero no puedo ver dónde ocurriría esto en el código. Además del constructor de Invader, muéstranos dónde/cómo se inicializa la matriz de invasores. El constructor de copia de Invader también podría ser interesante, si tiene uno. – Medo42
Acabo de actualizar OP con [email protected], la matriz invasora acaba de inicializarse como variable global: "Invasores invasores [55];" – Milk