回覆列表
  • 1 # 何以笙丶丶

    造成程式停止執行彈框出錯的可能原因如下:

    記憶體溢位

    記憶體溢位(out of memory)通俗理解就是記憶體不夠,程式所需要的記憶體遠遠超出了主機內安裝的記憶體所承受大小,就叫記憶體溢位。系統會提示記憶體溢位,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分記憶體又可以正常執行該軟體

    造成記憶體溢位的原因可能有:

    1>棧區溢位,例如在main函式內開闢的陣列空間過大,一般機器的棧區限制在8MB左右,如果開闢的陣列大小超過限制,程式就會崩潰。通常的解決方法是申請堆記憶體,即將較大的陣列作為全域性變數開在main函式之外。

    2>錯誤地址訪問,常見的非法訪問包括指標漂移,陣列越界等,初學者也經常出現類似scanf函式沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢位。

    3>資料型別不符,問題和第二個類似,例如在宣告變數時宣告為int在輸出變數時卻用了%lld,就會造成因資料型別不符而導致的溢位。

    編譯器錯誤

    部分編譯器由於所使用的標準不同(例如在一臺機器上使用的可能是C99標準,而另一臺機器上使用的是C11標準),或是因為編譯器連結庫的損壞,在少數情況下也可能導致程式出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。

  • 中秋節和大豐收的關聯?
  • 劉心武揭秘《紅樓夢》的論題,目前都被證實了麼?