在C 中執行程式,為什麼在編譯時沒有問題,但是回到程式的執

2021-04-20 19:17:59 字數 957 閱讀 5878

1樓:匿名使用者

編譯器又不是萬能的,雖然已經足夠只智慧,但是對於一個傳遞了無數次的指版針是否仍權然有效或者傳遞過一次以上的陣列的範圍等問題編譯器是做不來的(其實並不是做不來,只是為了效率很少去做這些事,你總不希望一個程式編譯一天吧)。所以要依靠**風格解決這些問題。

其中最常見的是陣列訪問越界和野指標問題,當然也有部分野引用問題也會造成執行時崩潰。所以你要通過改變程式設計風格或者確保每次進行記憶體的相關操作的時候盡力謹慎。前者可以參考 effective c++ 系列和imperfect c++這些書。

另外你編寫的**有很大的問題:

bitnode *gen;//根節點

int sum;

全域性變數只在本檔案有效,在函式內部使用全域性自動變數是非常危險的。用返回值又不會怎麼樣……

countleaf( t->lchild, count);

countleaf( t->rchild, count);

這個會無限迴圈……這遞迴沒有結束條件……

2樓:匿名使用者

陣列越界訪問或者使用了一個指向null的指標 這些都是執行時錯誤,編譯檢查不出來

為什麼在編譯c++程式的時候是沒有錯誤的,但是執行的時候就是出不來結果

3樓:吾守護奇蹟

編譯通過只是說明沒有語法錯誤,執行不出結果就是你**邏輯問題了貼**看看吧,自己打斷點除錯一下

while(r=!0)

寫反了吧, r != 0

否則就成死迴圈了。。。

4樓:夢中睡客

可能是你沒有輸出結果吧?

5樓:翼下之風

你可以跟蹤除錯一下就知道了

6樓:百科大全才

沒有編譯錯誤, 有邏輯錯誤;

你最好把**貼出來看看;

在ubuntu系統中如何編寫執行c程式?最好用ubuntu的那個版本

ubuntu 上你可以用 gedit 編寫 c 語言程式,如果沒裝圖形使用者介面,就用 vi 編寫。在連線好 internet 後,用 apt get install build essential 命令可以安裝好 編譯環境。有了編譯環境以後,你可以使用 gcc 源程式檔名 o 編譯得到的檔名 命令...

在C語言程式中與之間的註釋資訊也被編譯,但對程式運

註釋資訊不會被編譯,所以不會對執行結果產生任何影響 那是不被編譯的,不影響執行結果。急求答案!求高手幫忙做一下這套c語言的模擬題!判斷題答案 錯錯錯錯對錯對對對錯對錯對錯錯錯錯錯對對,我手機啊!先把你的選擇題做完。c語言中 與 的區別 c語言中 與 的區別如下 是否為單行註釋 是用於多種語言的單行註...

為什麼我的電腦在執行程式的時候不時的彈回桌面感染了什麼

explorer.exe出錯了 系統資源不足。如果機器配置低的話建議不要同時開啟太多應用程式。另外可適當加大虛擬記憶體,特別是經常玩大型遊戲 計算機執行某個程式等待時間過長,比如讀取資料,尤其是光碟或者外界裝置的資料的時候,也會出現explorer.exe出錯 可以先嚐試加大虛擬記憶體,對於虛擬記憶...