C - 访问数组元素时的分段错误



这是我的问题,我对数组进行了如下malloc:

e->map = malloc(sizeof(int *) * e->map_y);
i = -1;
while (++i < e->map_x)
    e->map[i] = malloc(sizeof(int) * e->map_x);

其中e->map_y=14和e->map_x=10问题是我无法访问e->map[10][0](包含)之后的元素(我有一个segfault)我很难把x和y倒过来,但这里似乎不是这样。

如果需要,我可以发布我的整个代码,thx

嗨,我在github上添加了整个项目以了解更多详细信息:https://github.com/42-hbock/fdf

这部分代码在src/default_reading.c中,malloc在函数char*default_reading(char*file,t_env*e)中,我在void create_int_map(char*cmap,t_env*e)中访问时出现分段错误

应该是:

e->map = malloc(sizeof(int *) * e->map_y);
i = -1;
while (++i < e->map_y)
    e->map[i] = malloc(sizeof(int) * e->map_x);

改变是同时查看e->map_y而不是e->map_x。代码的其余部分是相同的。

相关内容

  • 没有找到相关文章

最新更新