我有一个非常简单的程序,但它不起作用。此外,它让我对程序的流程产生了严重的怀疑。
程序如下所示(假定有必要的头):

main(){
printf("hello1");
printf("hello2");
somefunction();
}

输出至少是独特的:它只返回第一个printf(hello1),然后程序立即退出并出现错误“Segmentation fault 11”。但是,如果删除“somefunction()”,则还会显示第二个printf。
我的意思是,如果我的'somefunction()'有问题,第二个printf()应该显示出来。

最佳答案

你的somefunction做了一些令人讨厌的事情,在printf有机会刷新缓冲区之前,进程被终止。您可以尝试:

printf("hello1");
printf("hello2");
fflush(stdout);
somefunction();

关于c - gcc4.2.1无法解释的错误(Segm.fault 11),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9851999/

10-11 15:14
查看更多