我的程序中定义了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的答案解决了问题。
答案 0 :(得分:2)
为什么没有人选择这个?或者我错过了什么?
在get_mem_layout
中你做的第一件事就是:
regions = 0;
然后您继续以数组形式访问regions
...
你的意思是:
num_regions = 0;