野指針:
1、什麼是野指針?
不指向任何合法對象的指針。
2、野指針產生的原因?
局部指針變量未被初始化。
使用已經釋放過後的指針。
指針所指向的變量在指向之前就已經被銷燬。
3、如何避免野指針?
指針變量在定義時就初始化。
釋放前先判斷指針是否爲空,避免多次釋放,釋放後及時將指針賦值爲NULL
if (NULL !- p)//先判斷p是否爲空
{
free(p);//釋放p指向的內存空間
p = NULL;//將p賦值爲空
}
4、內存管理規則
一、數組做函數參數,必須傳送數組長度
二、避免函數單入口多出口
三、誰分配,誰釋放,防止內存泄漏,防止多次釋放。