C語言程式設計的時候出現程式已停止工作的原因有哪些

2021-05-22 06:19:40 字數 992 閱讀 9480

1樓:史帥鍋

最常見的原因:程式發生了空指標呼叫。62616964757a686964616fe59b9ee7ad9431333363376535

如果你剛入門,請檢查:

scanf("%d",&i); 有沒有加上「&」號,scanf必須在變數前加「&」(取地址符)。

如果沒有加&, scanf會把變數當作地址來用,而你的程式中又沒有以變數為地址的變數,作業系統不允許程式讀寫程式規定範圍以外的空間。出於安全起見,作業系統將其緊急中止。就發生了「***.

exe已停止工作」的效果。

如果你正在學習陣列,請檢查:

陣列是否越界。定義為int a[10]的陣列,如果寫a[10]=0; 相當於對a陣列裡的第11個元素賦值。事實上,a陣列裡並沒有第11個元素。

如果該元素的位置指向一個程式以外的記憶體,作業系統同樣會果斷將其終止。

如果你正在學習指標,請檢查:

指標是否賦值;

在給指標賦值時,有沒有在非指標變數前加取地址符「&」;

int * p = &i; //正確!

int * p = i; //錯誤!

這與在sccanf裡沒有加上「&」號的原因大致相同。

指標問題屬於程式邏輯錯誤,很多時侯編譯器只會給你一個警告。要注意警告發生的位置自己是否有把握。如果你多次編譯或忽視編譯警告而進行連結,編譯器會認為你對這些警告是有把握的,完全地信任了你,也就沒有警告了。

2樓:心聲代

程式設計時候還是執行時候,程式設計時候那就是軟體安裝有問題,執行的話就是記憶體溢位,比如指標用錯,陣列賦值賦錯地址

3樓:匿名使用者

執行時錯誤,很多時候是記憶體錯誤和陣列越界(截止現在我遇到的)等問題。在執行時會出現錯誤,編譯不出來!

4樓:匿名使用者

記憶體錯誤和陣列越界等等

5樓:北歐歌聲

可能是程式變數呼叫的地址有誤,可能被**。

c語言程式設計序新手問題,C語言程式設計序新手問題

include main 1 你是不是按的f5進入了除錯模式啊,除錯模式控制檯框一閃而過,你要加上一句getch 或者ctrl f5 2 還有,你的除法結果最好是寫成float,否則可能導致丟失小數點後面的數而讓結果錯誤。3 除法時最好判斷下除數是否為0.我了一下你的程式,沒有問題,程式是正確的,至...

C語言編程序,C語言程式設計序

我的演算法肯定是最好的。int insert int arr,int arrsize,int insvalue else break newarr i insvalue for i i arrsize i arr newarr return arrsize 1 num為陣列 n為陣列的長度,in為要...

C語言程式設計題,求助大神c語言程式這道題怎麼做,求助大神

100不夠幫你寫的,思路 不懂,追問吧?include include unsigned int calcdayofmonth unsigned int year,unsigned int month bool isleapyear unsigned int year struct time tim...