gpt4 book ai didi

c - 给结构体数组赋值时进程返回-1073741819 (0xC0000005)

转载 作者:行者123 更新时间:2023-11-30 20:02:53 24 4
gpt4 key购买 nike

标题

#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;
}

这三行:

frame[i].particle[j][k].pos[XPOS]=j;
frame[i].particle[j][k].pos[YPOS]=k;
frame[i].particle[j][k].p=' ';

似乎导致了问题,因为删除它们会使终端停止返回0xC0000005,但它也不会返回0。它会卡住而不会重复任何内容。

编译器没有给出任何错误或警告。

最佳答案

        for(int k=0;i<MAX_Y_COORDINATE;k++)

应该是

        for(int k=0; k<MAX_Y_COORDINATE;k++)

这就是为什么总是为变量命名一些有意义且可读的名称。

关于c - 给结构体数组赋值时进程返回-1073741819 (0xC0000005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58785970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com