2

struct在我的程序中定义为:

    结构记忆区{
      无效*来自;
      无效*到;
      整数模式;
    }

我在我的程序中声明,这个结构的数组为struct memregion regions[10]. 然后我将它传递给一个函数,get_mem_layout(regions, 10)其声明为:

    void get_mem_layout(struct memregion *regions, int size)

但是,当我尝试将数据写入结构的任何成员变量时

    区域[j].mode = 1;

或者

    无效*地址;
    地址=(无效*)0;
    区域[j].from = addr;

我收到分段错误。我无法确定为什么会这样。请帮忙。

更新:删除完整代码,因为它是作业的一部分。问题已通过@paddy 的回答解决。

4

1 回答 1

3

为什么没人捡到这个?还是我错过了什么?

get_mem_layout你做的第一件事是这样的:

regions = 0;

然后你继续regions作为一个数组访问......

你的意思是:

num_regions = 0;
于 2012-09-18T02:17:14.073 回答