写入struct时出现分段错误

时间:2012-09-18 02:03:14

标签: c pointers struct segmentation-fault

我的程序中定义了struct


    struct memregion {
      void *from;
      void *to;
      int mode;
    }

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


    void get_mem_layout(struct memregion *regions, int size)

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


    regions[j].mode = 1;

OR


    void *addr;
    addr = (void *)0;
    regions[j].from = addr;

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

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

1 个答案:

答案 0 :(得分:2)

为什么没有人选择这个?或者我错过了什么?

get_mem_layout中你做的第一件事就是:

regions = 0;

然后您继续以数组形式访问regions ...

你的意思是:

num_regions = 0;