0xC0000005: Access violation reading location 0x00000000

access-violation, c++

Solution

This line looks suspicious:

invaders[i] = inv;

You're never incrementing `i`, so you keep assigning to `invaders[0]`. If this is just an error you made when reducing your code to the example, check how you calculate `i` in the real code; you could be exceeding the size of `invaders`.

If as your comment suggests, you're creating 55 `invaders`, then check that `invaders` has been initialised correctly to handle this number.

Problem

I'm having a very strange issue with a space invaders game I'm working on. Basically I get an access violation error: Unhandled exception at 0x5edad442 (msvcr100d.dll) in SpaceInvaders.exe: 0xC0000005: Access violation reading location 0x00000000. when I include the piece of code below. visual studio takes me to "strcmp.asm" when debugging. Note that Im not using strcmp() in any of my code. Is there anything wrong with the code, or is this a problem beyond the scope of what I've included? Thanks for any help ``` 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) {}; ```

Original source

Related problems