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