簡單的C語言程式單步除錯不報錯,執行報錯。

2025-07-09 23:45:18 字數 2847 閱讀 3287

1樓:網友

stack overflow

報錯的時候,選擇除錯,發現有如上的資訊,stack overflow 表示棧溢位。

你使用遞迴的方法來計算,遞迴最讓人詬病的地方就是在層次很深的情況下會消耗大量的棧記憶體,而一般只會給應用棧分配有限的大小。

可以修改程式,使用迭代的方法,巢狀的兩層for迴圈應該能解決問題。

簡單c語言 這程式除錯時沒錯 執行報錯 為什麼?

2樓:網友

輸入函式中傳遞的是變數的位址,所以要用&取位址符號,修改位置註釋給出# include

# include

int main()

執行結果如下所示。

c語言程式不完整,除錯會報錯嗎?

3樓:網友

首先,各種符號例如括號要對稱。如果你只能一段正確的程式拿出一小段完整的,有時候也會報錯,因為有的變數沒有定義,或函式,引用沒有定義或寫等。

4樓:快樂0小孩

turbo c我沒試過,vc++ 我試過的,要是他們在同乙個工程裡面不會報錯,但是不能連線生成exe執行,

5樓:

除錯過程:

檢查語法錯誤-》編譯(把c語言轉成彙編**)-》連線(生成。exe檔案)-》執行。

6樓:匿名使用者

沒有函式當然會出錯的。

c語言程式設計除錯後沒有錯誤但是卻無法執行是怎麼回事?

7樓:網友

無法執行可bai能遇到的du問題:

編譯沒錯,但是zhi執行後彈出記憶體相關dao報錯---有邏。

版輯錯誤,或者記憶體呼叫錯權誤。

執行直接閃退---有可能該程式無任何執行結果輸出語句,或者使用編譯器(or ide)與作業系統不相容。

暫時只能想起這麼多了。

8樓:12端木歪歪

能編譯才能執行,除錯只是分部進行。

c語言除錯不報錯。執行時停止工作。

9樓:網友

t=0;q=0;

for(t;ts=0;

for(s;s<=10;s++)

data[q].num=a[t][s]; // data[q].num=a[t][10]; 陣列越界,造成記憶體錯誤(正確的寫法是。

for(s; s<10; s++)其它的地方你看看有沒有類似的錯誤吧。

10樓:網友

我在linux環境下編譯,問題太多了,都不知道從**開始了。

伴隨的問題是你的code變數、用途都不知道是什麼作用,看起來非常吃力啊!

vc乙個c語言程式,在除錯裡一步一步能夠執行,,直接執行卻不可以了,急求解答!!!!

11樓:網友

管理系統……

很蛋疼的這個東西,而且別人的**有時會很難看出來什麼問題的……

如果不是很急可以找我吧。

簡單的c語言問題, 不報錯,能執行 怎麼不顯示結果

12樓:網友

樓主!你的程式陷入了死迴圈!

錯誤發生在。

while(i<=10);

這句話上。注意最後面你多寫了乙個分號。計算機會理解成while(i<=10)

也就是while 後面跟了乙個空語句,空語句裡i值不變,所以 i<=10 一直為真,這樣就一直迴圈下去樓。

去掉這個分號,立即顯示答案 10! = 362800

c語言程式沒有報錯,執行起來走到一半就不動了,也不退出停止,也不能在dos中輸入內容

13樓:匿名使用者

在 shellsort() 函式中 while n( d > 0) 的迴圈中 d 值沒有改變。

簡單c語言,程式顯示沒錯誤,但是總是執行不出來,為什麼呢?

14樓:網友

改成:for(i=0;i<6;i++)

scanf("%d",&num[i]);

i<=6;i++)改成for(i=0;i<6;i++)陣列下標是從0開始的,=6就越界了。

15樓:明天未來

你只定義了6個陣列,可是你用了7個元素,已經越界溢位了。你把迴圈改成這樣就ok了。

for(i=1;i<6;i++)

c/c++語言定義的陣列是不包括本身元素,而且是從零元素開始,即你定義的應該是:

num[0],num[1],num[2],num[3],num[4],num[5];

並不包括num[6]。因此,你就會出錯。

編譯器只能檢測你的語法有沒有問題,並不能檢測隱藏的問題。所以學c語言要非常小心。

16樓:網友

明顯的錯誤嘛,scanf()前面6個%d,需要分配6個int的,你後面只有乙個num,執行的話會出現段錯誤,改成:

printf("the max num is %d",max);}

17樓:網友

陣列時從零開始的。

第乙個元素為num[0]

18樓:網友

陣列長度為6,然而其下標範圍是0到5,你的for迴圈中i<=6卻說明了陣列下標可以達到6~~~

所以把for迴圈改為如下形式。

for(i=0;i<6;i++)

19樓:網友

都已經說的很明白了 ..

C語言的單步除錯怎麼寫?

這個乙個功能 一步一步的除錯 就是了哈!如何進行c語言的單步除錯 f打斷點然後f執行。或者直接f f c語言如何單步執行 首先開啟 的軟體,再定義乙個int型別的變數a。 然後設定變數a的設定為,再用for語句進行迴圈。 然後迴圈的次數,要和變數a進行比較,再進行a 如下圖所示。 接著要是想要無限循...

c語言中單步除錯如何跳出本次迴圈

單步除錯bai過程中,如果要跳du出本次迴圈,zhi只能在迴圈外語句設定dao一個斷點,然後版執行執行命權令,這樣除錯工具就會開始執行程式,直到遇到斷點後暫停,從而達到跳出迴圈的效果。具體如何設定斷點,與編譯器及除錯工具相關,不做列舉,可以查閱除錯工具的幫助文件。這種方法需要注意以下兩點 1 如果在...

c語言中什麼叫做單步除錯,步驟是什麼

除錯是針對編譯器而言的,不是針對c這門語言來說的。單步除錯就是指每次執行一句 步驟根據不同ide是不同的。在tc中按f8,f7 vc下按f11,f10。前者會進入呼叫的函式內部單步執行,後者不會。樓上回答的差不多,單步除錯有兩種情況 f7和f8,至於兩者具體的區別,你去自己嘗試一下,比我告訴你更加的...