c 程式設計 常犯的錯誤,隱藏性很高,而且很致命

2021-09-05 08:52:21 字數 607 閱讀 6115

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...