我有一個程序,分爲多個文件,幷包含很多包含數組,指針,結構和不包含的代碼。該程序如何在最後一行(返回0;)後崩潰?
爲了說明問題:這些是我的main()
方法的最後一行;
...
printf("\nLast line!");
return 0;
}
我編這個程序沒有警告後,我執行它,在我的控制檯我得到的文本:Last line!
在我的CMD和程序崩潰(不響應)之後。
我經常使用printf()
來調試我的代碼,並確定程序崩潰的代碼行。在這種情況下,我無法將我的頭圍繞在程序最後一行之後程序崩潰的事實中。
我的問題:
- 可在主要功能
return 0;
導致崩潰? - 是否有可能由於我的程序中的早先未定義的行爲而導致程序崩潰?
- 如果是這樣,我該如何調試我的代碼? (我使用的是Windows 7)
注:我知道肯定只有一個printf("\nLast line!");
在我的代碼。
「_And是有可能的程序崩潰是由於早期在我的計劃不確定的行爲_?」 - - **是**。谷歌「返回statement_中的_segmentation錯誤」,你會發現很多結果。 –
@CoolGuy好的,所以現在我必須找到它:) – moffeltje
唉:「編譯這個程序沒有警告」只意味着你的程序不包含語法錯誤。邏輯錯誤,例如覆蓋您不擁有或被零除的內存,不會導致編譯器警告或錯誤。 – usr2564301