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;
答案 0 :(得分:0)
不是将状态机分配为堆栈变量,为什么不使用malloc()
和然后?
像这样:
stateType state = malloc(sizeof(stateType));
答案 1 :(得分:0)
最有可能的是,从我看到的代码片段中,您的state.program_counter
超出了数组state.mem
的大小。确保它不会意外地为负,或大于或等于NUMMEMORY
。