先看以下的例子:
int *ptr;
*ptr = 5;
這程式碼有什麼問題呢?第二行是要將5存在ptr指標指向的位置,然而實際上ptr並沒有做初始化的動作,所以裡面的值存的是一個亂數值,所以5會不知道該存在哪,可能導致資料會覆寫或者讓程式crash。要記住的一點是當宣告一個指標變數時,系統只分配了儲存此指標的記憶體空間,我們應該還要將它初始化,如指派已配置空間的記憶體位址或者使用malloc()。
印象中我好像常常犯這個錯誤~~
You got a dream, you gotta protect it!
0 意見:
張貼留言