C語言 常見錯誤

2021-05-27 08:53:42 字數 707 閱讀 5809

1、

char * p;

注意p中包含字串結束符『\0』

2、

strlen函式沒有包含字串末尾的'\0'

3、

如果函式的引數是乙個指標,不要指望用該指標去申請動態記憶體

4、

createnode(binnode *tree,char *p)

訪問tree.data錯誤;

原來問題出在c編譯器原理上:編譯器總是要為函式的每個引數製作臨時副本,指標引數tree的副本是 _tree,編譯器使 _tree = tree。如果函式體內的程式修改了_tree的內容,就導致引數tree的內容作相應的修改。這就是指標可以用作輸出引數的原因。

即上面的函式**經過編譯後成為:

createnode(binnode *tree,char *p)

5、

char p = "helloworld";

return p;

p陣列為函式內的區域性變數,在函式返回後記憶體已經被釋放,考慮變數的生存週期

C語言 常見錯誤

1.忘記定義變數。2.輸入輸出的資料的型別與所用格式說明符不一致。3.未注意 型資料的數值範圍。4.在輸入語句scanf中忘記使用變數的位址符。5.輸入資料的形式與要求不符。6.誤把 作為 等於 運算子。7.語句後面漏分號。8.在不該加分號的地方加了分號。9.對應該有花括號的復合語句,忘記加花括號。...

C語言常見錯誤

1.索引陣列時的防止越界的錯誤寫法 int arr max 在某處索引該陣列時,為了防止下標越界,可能會這樣寫 count get index if arr count 0 count max 在count max時,第乙個判斷條件其實已經越界了 do something 2.在兩個執行緒間傳遞指標...

C語言常見錯誤小結

c語言的最大特點是 功能強 使用方便靈活。c編譯的程式對語法檢查並不象其它高階語言那麼嚴格,這就給程式設計人員留下 靈活的餘地 但還是由於這個靈活給程式的除錯帶來了許多不便,尤其對初學c語言的人來說,經常會出一些連自己都不知道錯在 的錯誤。看著有錯的程式,不知該如何改起,本人通過對c的學習,積累了一...