指針與內存管理初步

野指針:
1、什麼是野指針?
不指向任何合法對象的指針。

2、野指針產生的原因?
局部指針變量未被初始化。
使用已經釋放過後的指針。
指針所指向的變量在指向之前就已經被銷燬。

3、如何避免野指針?
指針變量在定義時就初始化。
釋放前先判斷指針是否爲空,避免多次釋放,釋放後及時將指針賦值爲NULL

if (NULL !- p)//先判斷p是否爲空
{
    free(p);//釋放p指向的內存空間
    p = NULL;//將p賦值爲空
}

4、內存管理規則
一、數組做函數參數,必須傳送數組長度
二、避免函數單入口多出口
三、誰分配,誰釋放,防止內存泄漏,防止多次釋放。

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