c 語言編譯能通過,執行出現程式已停止工作

2025-07-16 01:25:20 字數 1424 閱讀 7263

1樓:神級人氏

可能有幾種情況:

1.程式沒有等待輸入輸出,很快的執行完畢並退出了。

2.程式沒有等待輸入,很快計算完畢輸出並退出了。

3.程式一執行就出錯退出了。

c語言是一種電腦程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的於1972年推出,1978年後,c語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。

2樓:海蟹豔兒

有可能你的程式在執行中訪問了不該訪問的地方,又或者程式中有越界現象(譬如:陣列)。

c語言程式出現exe停止工作是什麼原因

3樓:阿天美食達人

c語言程式執行出現exe停止工作的原因是因為記憶體溢位和編譯器錯誤。

第一種:記憶體溢位。

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

第二種:編譯器錯誤。

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

舉例說明:1、除以零。

2、陣列越界:int a[3]; a[10000000]=10。

3、指標越界:int * p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10。

4、使用已經釋放的空間:int * p; p=(int *)malloc(5 * sizeof(int));free(p); p=10。

5、陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000],沒有開闢記憶體 list l=(list)malloc(sizeof(struct lnode))。runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

c語言里程式編譯無誤但執行會彈出程式已停止執行是為什麼

4樓:匿名使用者

#includevoidsort(floata,intn)//這兩行怎麼可以併攏而且標頭檔案也沒加兩個main兩個標頭檔案函式名也一樣好亂啊這**把下乙個#include前的**全刪掉。

5樓:弒緋

那就說明程式有問題,應該再記憶體處理方面有越界。

為什麼C語言程式能編譯但是執行不到 5

為什麼c語言程式能編譯但是執行不到 錯誤原因 在執行過程中發生了異常,比如空指標,陣列越界,死迴圈無法跳出等。編譯 編譯的意思就通過了編譯器的詞法語法分析器的解析,編譯器可以解析你的所有的 沒有語法語義上的錯誤,比如c語言 a 這樣的可以編譯,因為語法滿足c語言的標準,但是明顯會報錯,即執行錯誤。運...

C語言問題無法執行,為什麼C語言程式編譯正確但不能執行?

把float mid 改成int mid 把for i 0 i把for j 0 jmid a n a n 2 2 這一句越界了,不知道你的意圖,無法改,自己改吧 char a n 20 這種定義是不被允許的。應當採用動態記憶體的方式,include stdio.h include string.h ...

c語言程式編譯成功,執行後沒有東西

我拿手機除錯了下,你while括號裡的判斷導致整個程式無法執行還不報錯,你可以再仔細看下,變數太多還沒註釋不太想看 上面說的不太對吧 應該是while那一句後面不能有分號 你的程式我沒仔細看也沒去編譯 應該是這個原因 你把while那一句後面的分號刪掉試試 c語言程式編譯的時候沒有錯誤,執行後就顯示...