㈠ 為什麼我寫的C語言程序編譯時沒錯,運行時有錯誤
樓主,你好!編譯沒有錯誤只能說明沒有語法錯誤,並不能說明代碼的邏輯沒有錯!因為編輯器主要是根據c語言的語法來檢查你的代碼有沒有錯!
㈡ c語言編譯沒錯誤,但是執行不了,一執行就出錯,這是為什麼呢
你這個就叫「編譯錯誤」,確切地說是「鏈接錯誤」,不叫「運行時出錯」。
㈢ c語言編譯連接都沒有錯但運行不出來為什麼
沒代碼,編譯連接都沒有錯只能說明你語法、變數使用沒錯,邏輯上的錯誤是難以排除的
㈣ C語言編程調試後沒有錯誤但是卻無法運行是怎麼回事
無法運行可能遇到的問題:
編譯沒錯,但是運行後彈出內存相關報錯------》有邏輯錯誤,或者內存調用錯誤
運行直接閃退---------------》有可能該程序無任何執行結果輸出語句,或者使用編譯器(or IDE)與操作系統不兼容
暫時只能想起這么多了。
㈤ 編譯的C語言程序沒有錯誤就是運行不了怎麼回事
這個太多情況了,程序能編譯只能證明程序沒語法錯,程序有問題(如下標溢出,表達式不正確)可能導致程序無法運行或結果不正確的
㈥ C語言里程序編譯無誤但運行會彈出程序已停止運行是為什麼
造成程序停止運行彈框出錯的可能原因如下:
內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體
造成內存溢出的原因可能有:
1>棧區溢出,例如在main函數內開辟的數組空間過大,一般機器的棧區限制在8MB左右,如果開辟的數組大小超過限制,程序就會崩潰。通常的解決方法是申請堆內存,即將較大的數組作為全局變數開在main函數之外。
2>錯誤地址訪問,常見的非法訪問包括指針漂移,數組越界等,初學者也經常出現類似scanf函數沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢出。
3>數據類型不符,問題和第二個類似,例如在聲明變數時聲明為int在輸出變數時卻用了%lld,就會造成因數據類型不符而導致的溢出。
編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
㈦ C語言編譯沒錯誤,但為什麼不能運行出結果
bug!
編譯器推薦你用visual studio它會指出你邏輯不合理的地方(當然有很大局限不好用),還有你的程序是不是沒加輸出,還是輸出了但是沒加getchar();讓它停頓住而一閃而過?
㈧ C語言程序問題,編譯成功可卻不能運行,這是為什麼
編譯,只檢查各函數內部的語法是否有錯誤。
連接,除了做編譯要做的檢查以外,還要檢查各函數的調用是否正確。
樓主這情況,最常見的就是哪個函數名敲錯了,從頭到尾只檢查函數名的拼寫是否正確