Title
#define XY 2
#define XPOS 0
#define YPOS 1
#define MAX_X_COORDINATE 64
#define MAX_Y_COORDINATE 64
#define MAX_FRAME 64
typedef struct
{
int pos[XY];
char p;//particle
}particle_t;
typedef struct
{
int index;
int offset;
int delay;
particle_t particle[MAX_X_COORDINATE][MAX_Y_COORDINATE];
}frame_t;
frame_t frame[MAX_FRAME]={0};
int main()
{
printf("Loading...\n");
for(int i=0;i<MAX_FRAME;i++)
{
frame[i].index=i;
frame[i].offset=0;
frame[i].delay=50;
for(int j=0;i<MAX_X_COORDINATE;j++)
{
for(int k=0;i<MAX_Y_COORDINATE;k++)
{
frame[i].particle[j][k].pos[XPOS]=j;
frame[i].particle[j][k].pos[YPOS]=k;
frame[i].particle[j][k].p=' ';
}
}
}
return 0;
}
These three lines:
frame[i].particle[j][k].pos[XPOS]=j;
frame[i].particle[j][k].pos[YPOS]=k;
frame[i].particle[j][k].p=' ';
seemed to cause the problem as removing them made the terminal stop returning 0xC0000005
, but it wouldn't return 0 either. It will just stuck without rerurning anything.
The compiler didn't give any error or warning.
for(int k=0;i<MAX_Y_COORDINATE;k++)
should be
for(int k=0; k<MAX_Y_COORDINATE;k++)
That is why always name variable some meaningful and readable name.
Also
for(int j=0;i<MAX_X_COORDINATE;j++)
Should be
for(int j=0;j<MAX_X_COORDINATE;j++)
You have an infinite loop inside an infinite loop. There is no end condition on the loops because i
doesn't change.
Edit: Coincidentally, the return value 0xC00000005 is most like because you are "Overflowing the stack" as it were.
User contributions licensed under CC BY-SA 3.0