指针与内存管理初步

野指针:
1、什么是野指针?
不指向任何合法对象的指针。

2、野指针产生的原因?
局部指针变量未被初始化。
使用已经释放过后的指针。
指针所指向的变量在指向之前就已经被销毁。

3、如何避免野指针?
指针变量在定义时就初始化。
释放前先判断指针是否为空,避免多次释放,释放后及时将指针赋值为NULL

if (NULL !- p)//先判断p是否为空
{
    free(p);//释放p指向的内存空间
    p = NULL;//将p赋值为空
}

4、内存管理规则
一、数组做函数参数,必须传送数组长度
二、避免函数单入口多出口
三、谁分配,谁释放,防止内存泄漏,防止多次释放。

猜你喜欢

转载自blog.csdn.net/naughfy/article/details/72595542