C語言中經常遇到的 segmentation fault 錯誤

首先解釋一下這個錯誤的意思
segmentation fault: 分段錯誤;(機器翻譯,我也不知道準確的翻譯)
在學習C語言指針的的時候,這個錯誤絕對碰到不止一次,後來發現,其實大多數情況都是因爲指針變量沒有初始化,就進行使用的時候就會出現這個玩意兒,當然這個,只有在debug情況下會出現,如圖1,運行程序,則會出現圖2的情況。
這裏寫圖片描述
圖1
這裏寫圖片描述
圖2

int main(){
    char *name; 
    printf("%c",*name);
}

上面只是一個很簡單的例子,想說明的就是定義指針變量時候,一定要記得初始化,編譯時,不會出錯,但是運行就不行,這在實際開發的時候是致命的錯誤。因爲沒有初始化的指針指向的內存區域是無法預料的。
順便提一下
在用malloc( )分配內存區域的時候,用完了(不需要了,無指針指向該區域了),記得要使用free( )進行釋放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章