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

时间:2015-03-01 18:49:09

标签: c arrays struct malloc

这是我的问题,我像这样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-&gt; map_x = 10 问题是在e-&gt; map [10] [0](包括)之后我无法访问(我有一个段错误)元素 我很反应我反转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)

1 个答案:

答案 0 :(得分:2)

应该是:

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-&gt; map_y而不是e-&gt; map_x。其余代码是相同的。