我有一个程序,分为多个文件,并包含很多包含数组,指针,结构和不包含的代码。该程序如何在最后一行(返回0;)后崩溃?
为了说明问题:这些是我的main()
方法的最后一行;
...
printf("\nLast line!");
return 0;
}
我编这个程序没有警告后,我执行它,在我的控制台我得到的文本:Last line!
在我的CMD和程序崩溃(不响应)之后。
我经常使用printf()
来调试我的代码,并确定程序崩溃的代码行。在这种情况下,我无法将我的头围绕在程序最后一行之后程序崩溃的事实中。
我的问题:
- 可在主要功能
return 0;
导致崩溃? - 是否有可能由于我的程序中的早先未定义的行为而导致程序崩溃?
- 如果是这样,我该如何调试我的代码? (我使用的是Windows 7)
注:我知道肯定只有一个printf("\nLast line!");
在我的代码。
“_And是有可能的程序崩溃是由于早期在我的计划不确定的行为_?” - - **是**。谷歌“返回statement_中的_segmentation错误”,你会发现很多结果。 –
@CoolGuy好的,所以现在我必须找到它:) – moffeltje
唉:“编译这个程序没有警告”只意味着你的程序不包含语法错误。逻辑错误,例如覆盖您不拥有或被零除的内存,不会导致编译器警告或错误。 – usr2564301