造成程式停止執行彈框出錯的可能原因如下:
記憶體溢位
記憶體溢位(out of memory)通俗理解就是記憶體不夠,程式所需要的記憶體遠遠超出了主機內安裝的記憶體所承受大小,就叫記憶體溢位。系統會提示記憶體溢位,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分記憶體又可以正常執行該軟體
造成記憶體溢位的原因可能有:
1>棧區溢位,例如在main函式內開闢的陣列空間過大,一般機器的棧區限制在8MB左右,如果開闢的陣列大小超過限制,程式就會崩潰。通常的解決方法是申請堆記憶體,即將較大的陣列作為全域性變數開在main函式之外。
2>錯誤地址訪問,常見的非法訪問包括指標漂移,陣列越界等,初學者也經常出現類似scanf函式沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢位。
3>資料型別不符,問題和第二個類似,例如在宣告變數時宣告為int在輸出變數時卻用了%lld,就會造成因資料型別不符而導致的溢位。
編譯器錯誤
部分編譯器由於所使用的標準不同(例如在一臺機器上使用的可能是C99標準,而另一臺機器上使用的是C11標準),或是因為編譯器連結庫的損壞,在少數情況下也可能導致程式出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
造成程式停止執行彈框出錯的可能原因如下:
記憶體溢位
記憶體溢位(out of memory)通俗理解就是記憶體不夠,程式所需要的記憶體遠遠超出了主機內安裝的記憶體所承受大小,就叫記憶體溢位。系統會提示記憶體溢位,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分記憶體又可以正常執行該軟體
造成記憶體溢位的原因可能有:
1>棧區溢位,例如在main函式內開闢的陣列空間過大,一般機器的棧區限制在8MB左右,如果開闢的陣列大小超過限制,程式就會崩潰。通常的解決方法是申請堆記憶體,即將較大的陣列作為全域性變數開在main函式之外。
2>錯誤地址訪問,常見的非法訪問包括指標漂移,陣列越界等,初學者也經常出現類似scanf函式沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢位。
3>資料型別不符,問題和第二個類似,例如在宣告變數時宣告為int在輸出變數時卻用了%lld,就會造成因資料型別不符而導致的溢位。
編譯器錯誤
部分編譯器由於所使用的標準不同(例如在一臺機器上使用的可能是C99標準,而另一臺機器上使用的是C11標準),或是因為編譯器連結庫的損壞,在少數情況下也可能導致程式出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。