1,申請記憶體
1.1 記憶體大小錯誤
比如:申請一塊存放8個unsigned int 資料的記憶體空間,
錯誤:malloc(8)
正確: malloc(8 *sizeof(unsigned int))
註解:malloc申請記憶體,是以位元組為單位的,所以當你的資料型別大小超過乙個位元組,在申請記憶體的時候,要注意大小的轉換。
這種錯誤是比較隱藏的,但是又是致命的,因為這種錯誤會導致踩記憶體,可能你在測試的時候根本不會發現,但是不知哪天就會爆發出一些奇怪的問題出來,而且你很難找到那些問題的原因
2. 無符號數和有符號數的常見錯誤
2.1 數值比較
例子:
char i = 254;
if(i == 254)
else
這段**應該列印出什麼呢?可能有些人覺得肯定是:i == 254。其實正確答案是:i != 254
這是因為i定義為有符號數,最高是符號位,取值範圍是 -128~127,所以把 i賦值254, 其實 i 變成乙個負數了。
曾經這個問題困擾了很長時間,總是不理解,命名i已經賦值成254了,怎麼可能不等於254
(未完,待續!!!)
C語言程式設計時常犯的錯誤
c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,經常會出一些連自己都不知道錯在 的錯誤。看著有錯的程式,不知該如何改起,本人通過對c的學習,積累了一些c程式設計時常犯的錯誤,以供參考。1 書...
c 格式錯誤 C語言程式設計時常犯的18種錯誤
c語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,經常會出一些連自己都不知道錯在 的錯誤 看著有錯的程式,不知該如何改起,本人通過對c的學習,積累了一...
C語言中常犯的錯誤(一)
對於語法錯誤,編譯器會給出精確到行的提示 邏輯錯誤則需要在流程圖的輔助下,重點關注留意花括號,進行判定 而執行錯誤則是指程式在接收到某些資料時因為處理不當,如陣列a n 中輸入了第n 1個元素,導致程式在執行過程 現錯誤。今天我們主要 以下幾個錯誤 使用檔案時開啟方式不正確 include incl...