访问C中的结构,给出分段错误

时间:2013-02-02 03:06:05

标签: c struct segmentation-fault

C中的这行代码会给我一个分段错误吗?因为它是,state是一个结构。

dec_to_bin( state.mem[ state.program_counter ], mc_binary );

我尝试过像

这样的预分配
int program_counter_temp = state.program_counter;
dec_to_bin( state.mem[ program_counter_temp ], mc_binary );

但它也不起作用。当我有这些作业时,我甚至都没有输入main。

这是状态结构

typedef struct stateStruct {
int pc;
int mem[NUMMEMORY];
int reg[NUMREGS];
int numMemory;
} stateType;

2 个答案:

答案 0 :(得分:0)

不是将状态机分配为堆栈变量,为什么不使用malloc()然后

像这样:

stateType state = malloc(sizeof(stateType));

答案 1 :(得分:0)

最有可能的是,从我看到的代码片段中,您的state.program_counter超出了数组state.mem的大小。确保它不会意外地为负,或大于或等于NUMMEMORY