我是新来的&有一个严重的分段错误问题。
我试图搜索,但没有任何帮助我。 我的代码传递了三个编译器: code :: blocks - 在win7。 eclipse在linux上。 和linux终端中的一个简单的makefile。
在运行progrem时我得到:分段错误(核心转储)。 我试图找到原因,但我没有线索。
我有一个函数,名为:getcmd()。
对于这一行:" operarr [index] .func();" 。 它被打印之前的行,但不是之后。
行:operarr [index] .func();.调用函数mov:
void mov(void)
{
if(pass==FIRSTPASS)
{
mas(0);
puts("End of mov().");
return;
}
else
{
mas(MOVOPCODE);
return;
}
这个函数判断这是第一遍还是第二遍并调用函数:
现在,我在第一个函数(getcmd())得到分段错误(核心转储)。 在行中:
puts("End of getcmd(index).BEFORE OPERARR[]---1\n");/* print on the screen.*/
operarr[index].func();
puts("End of getcmd(index).after operarr[]---2\n");/*not get printed.(!!)*/
第一个看到印刷但第二个看不到。 重要的是说两个puts()行(在mov& mas的末尾)也会被打印出来。我是说这句话: puts("结束mas()\ n"); puts("结束mov()。");
任何帮助将非常感谢。 谢谢!