调用函数返回时的分段错误 -

时间:2016-03-18 01:41:09

标签: c linux

我是新来的&有一个严重的分段错误问题。

我试图搜索,但没有任何帮助我。 我的代码传递了三个编译器: code :: blocks - 在win7。 eclipse在linux上。 和linux终端中的一个简单的makefile。

在运行progrem时我得到:分段错误(核心转储)。 我试图找到原因,但我没有线索。

我有一个函数,名为:getcmd()。

getcmd() func.

对于这一行:" operarr [index] .func();" 。 它被打印之前的行,但不是之后。

行:operarr [index] .func();.调用函数mov:

void mov(void)
{
    if(pass==FIRSTPASS)
    {
        mas(0);
        puts("End of mov().");
        return;
    }
    else
    {
        mas(MOVOPCODE);
        return;
    }

这个函数判断这是第一遍还是第二遍并调用函数:

mas() func.

现在,我在第一个函数(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()。");

任何帮助将非常感谢。 谢谢!

0 个答案:

没有答案