我的程序中定义了一个struct
:
struct memregion { 无效 *从; 无效 *到; 整数模式; }
我在我的程序中声明了这个结构的数组struct memregion regions[10]
.然后我把它传递给一个函数,作为get_mem_layout(regions, 10)
其声明是:
无效get_mem_layout(结构内存区域*区域,整数大小)
但是,当我尝试将数据写入结构的任何成员变量时,作为
区域[j].mode = 1;
或
无效 *地址; 地址 = (无效 *)0; 区域[j].from = addr;
我收到分段错误。我无法确定为什么会发生这种情况。请帮忙。
更新:删除了完整代码,因为它是分配的一部分。通过@paddy的回答解决了问题。
为什么没有人拿起这个? 还是我错过了什么?
get_mem_layout
你做的第一件事是这样的:
regions = 0;
然后你继续以数组的形式访问regions
...
你的意思是:
num_regions = 0;