【发布时间】:2016-09-01 12:07:19
【问题描述】:
我的代码是:
int main (void){
int i,j,k,x;
.
.
.
printf("before loop\n");
for (x=0; x<5; x++){
printf("loop %d",x);
//do something...
}
.
.
.
return 0;
}
它打印“循环前”,然后给出分段错误(核心转储),因此不打印任何“循环#”。 有人遇到过吗?
【问题讨论】:
-
欢迎来到 Stack Overflow!你介意创建一个MCVE吗?
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码.没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整且可验证的示例。
-
您是否尝试过在调试器中捕获崩溃?它发生在您的代码中的哪个位置?所有涉及的变量的值是多少?您是否尝试过使用诸如Valgrind 之类的内存调试器?您在构建时使用哪些优化标志(如果有)?最后,如果没有Minimal, Complete, and Verifiable Example,真的不可能为您提供适当的帮助。
-
你得到这个是因为问题中不存在的代码中的一些错误......
-
将
printf("loop %d",x);更改为printf("loop %d\n",x);是一个非常好的主意,因此输出会立即显示,终端上每行一个条目,而不是坐在标准输出缓冲区中,直到缓冲区溢出,或者执行了输入操作,或者其他一些代码输出了“\n”。
标签: c eclipse for-loop segmentation-fault