Sto avendo un problema molto strano con un gioco di invasori dello spazio su cui sto lavorando. Fondamentalmente ottengo un errore di violazione di accesso:0xC0000005: Posizione di lettura di violazione di accesso 0x00000000
Unhandled exception at 0x5edad442 (msvcr100d.dll) in SpaceInvaders.exe: 0xC0000005: Access violation reading location 0x00000000.
quando includo il codice di seguito. Visual Studio mi porta a "strcmp.asm" durante il debug. Nota che Im non sta usando strcmp() in nessuno dei miei codici. C'è qualcosa di sbagliato nel codice, o si tratta di un problema che va oltre lo scopo di ciò che ho incluso? Grazie per qualsiasi aiuto
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 costruttore:
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) {};
Mostra codice all'interno del costruttore di Invader –
Il messaggio di errore suggerisce che si tratta di un dereferenziamento del puntatore nullo, ma non riesco a vedere dove ciò potrebbe accadere nel codice. A parte il costruttore di Invader, per favore mostraci dove/come viene inizializzato anche l'array di invaders. Anche il costruttore di copie di Invader potrebbe essere interessante, se ne ha uno. – Medo42
Ho appena aggiornato l'OP con i [email protected], l'array di invader è stato appena inizializzato come variabile globale: "Invader invasori [55];" – Milk