感谢您的帮助。
我试图简化ARM的简化版本,我在c http://pastebin.com/3XRdngty中有一个非常奇怪的错误。
我在函数executer_code()中不明白为什么,
因为没有工作......
我的意思是它应该循环,直到变量" i"等于变量nombre_instruction,
但事实证明变量" nombre_instruction"它是第一次进入的时候是正确的价值,但第二次它没有进入因为它的值变为0,我在互联网上搜索是否有人同样的错误,我并没有找到任何东西。
我重读了我的代码,但我仍然无法弄清楚为什么会这样做,已经过了3个小时。
再次感谢您的帮助:)。
答案 0 :(得分:1)
这取自您的代码:
char *compar;
if(i==0){
sprintf(&compar,"%c%c%c%c",code[0],code[1],code[2],code[3]);
}
此处的问题是您将compar
声明为char
的指针,但它未初始化。所以,它有一个未定义的值。当你用sprintf
填充它时,你只需在内存中写一个地方,显然,你在变量nombre_instruction
上写下来。
解决方案:
char compar[200];