c語言程式執行出現b exe已停止工作是為什麼

2025-07-28 17:07:34 字數 3702 閱讀 1398

1樓:永星天恆

訪問了不可訪問的記憶體多數是這些情況:

1、野指標,你使用的指標指向未知區域。

2、scanf函式輸入整形、字元……的時候缺少了&3、緩衝區溢位,也就是說你使用陣列時不經意間越界了暫時就想到了這三種常見情況。

2樓:網友

程式裡出現了嚴重錯誤,導致程式執行不得不停止。

3樓:幻夢·人生

程式**問題。檢查**邏輯錯誤。

c語言程式執行總是顯示已停止工作,怎沒改啊!!!求解!!!

4樓:在晴天的雨傘

int a,b;

scanf("%d%d",&a,&b);/引數必須是指標(位址)才可以。

scanf()函式要求引數必須是指標型別,即將位址傳輸到其內,才可以讓a , b變數中獲取到資料。

如果你學過指標,你就會理解了。

c語言中函式的呼叫中,引數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函式中變化,形參的變化,不會影響到實引數據的內容。

c中,每定義乙個變數,系統都會在記憶體中給其分配乙個空間用來儲存資料。而這個空間的編號就是這個變數的位址。當我們將這個位址傳遞到子函式中,子函式在運算元據時,就會改變這個位址中的資料,這樣,實參的資料是會發生變化。

而你程式中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作位址去操作,因此會產生系統錯誤,導致程式執行停止。

c語言程式設計為什麼出現exe停止工作

5樓:

你的這種情況叫做 runtime error (執行時錯誤)。

<>runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

比如說:①除以零。

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

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

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

陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]

6樓:倒黴熊

if(n=0)

break;

num[i]=n%base;

n=n/base;

判斷是 ==不是= ,乙個等號表示賦值,所以n=0,而這個迴圈會一直下去 死迴圈了。

7樓:牽著螞蟻採蘑菇

看看你的程式裡面的scanf語句中有沒有「&」這個符號,(舉個例子:scanf("%d",&a);這裡的&表示取位址,如果沒有這個符號會出現你講的這個現象)

8樓:晴雨蕩氣

yntax error : missing ';before '<

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2501:

include' :missing storage-class or type specifiers

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2143: syntax error : missing ';before '<

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2143: syntax error : missing ';before '{

d:\學習系統2012\c語言檔案系統\vbxxb\ :error c2447:

missing function header (old-style formal list?)

執行 時出錯。

1 error(s), 0 warning(s)

zhe這麼多的 錯誤。

9樓:網友

c=i;for(i=0;i這句問題大大的啊。

10樓:網友

這個一般是你的程式有記憶體錯誤或者邏輯錯誤。建議除錯執行。

c語言程式設計出現exe已停止執行

11樓:

這種錯誤一般都是記憶體越界。

記憶體越界: 記憶體分配成功並且已經初始化,但操作越過了記憶體的邊界。

如下:int a[3]=;

而在編寫時卻用到了a[3]/a[4]等。

常見的記憶體錯誤 :

記憶體分配未成功,卻使用了它 ;

記憶體分配雖然成功,但是尚未初始化就引用它 ;

記憶體分配成功並且已經初始化,但操作越過了記憶體的邊界;

忘記了釋放記憶體,造成記憶體洩露 ;

釋放了記憶體卻繼續使用它。

這個程式執行**現了exe已停止工作為什麼?

12樓:華碩服務

建議提供下機器的配置,可以和遊戲的配置做下比較。現在因為看不到實際配置也無法確認。

如果配置達到要求的話,可能程式不相容, 可以更換個版本試試。

或者右鍵需要執行的程式 選擇相容性 用相容模式執行試試。

c語言編譯形成exe檔案後,執行顯示exe已停止工作。求大神告知

13樓:網友

應該改成這樣。

#include

main()

或者這樣。#include

main()

都不會出錯。

輸出浮點數的時候漏了%,導致被當成字元輸出了,a被當成字串輸出了,而printf輸出字串是根據結尾的\0來停止的,單引號的a後面不會有\0所以printf訪問越界了。

14樓:匿名使用者

控制檯程式,執行完就自動結束了。

你可以在控制檯下(命令列下執行此程式就可以看到結果了)

15樓:網友

很簡單,b=%,你漏了個%號。

c語言程式執行時顯示程式設計.exe停止工作,怎麼辦?

16樓:唯吾道古

這種情況叫做 runtime error (執行時錯誤)。請按照結尾的五條提示找出**中的錯誤,改正後就沒問題了。

runtime error (執行時錯誤)就是程式執行到一半,程式就崩潰了。

比如說:除以零。

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

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

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

陣列開得太大,超出了棧的範圍,造成棧溢位:int a[100000000]

17樓:數學劉哥

加幾條語句試一下,我的也會執行後退出來,加上#include和system("pause");這兩條語句你再試一下,我這麼做有用的,語句的位置參考下面的例子~

#include

#include

int main(void)

18樓:匿名使用者

工作管理員,幹掉它。或者cmd

19樓:匿名使用者

自己除錯看**看堆疊。

c語言程式執行出錯

沒有錯啊,我在我的電腦上執行了,是可以的。應該是你vc的問題 printf c n cstr1 2 printf c n cstr1 3 printf c n cstr1 4 s改為 c s要求對應引數是個指標,你應該只是想輸出乙個字元而以,用 c 要輸出字串也可以,用 s,cstr1 2 如果你用...

c語言程式執行時間測試,C語言程式執行時間測試

clock t clock void 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時間 wal clock 其中clock t是用來儲存時間的資料型別,在time.h檔案中,我們可以找到對它的定義 if...

C語言求乙個程式執行時間,C語言程式執行時間測試

我用c 做過資料結構 那個單鏈表還在。和你這樣 一樣 你留下 你如果 喜歡就要吧 include using namespace std typedef int elemtype typedef struct studentstudent,slistlink clock的度量單位是ms,但是cpu的...