在代码编写的过程中,可能会出现指针指向的位置未知,从而出现程序错误,这种指针统一称作野指针。
野指针出现的原因,最为常见的是如下几种。
第一种,指针未能初始化
第二种,指针的越界访问
越界访问就是指针指向变量未定义的内存,例如下图的数组的越界访问。
第三种,指针指向的空间释放
如上图的局部变量n随着函数test的创建而创建,随着函数test的消失而消失。所以当test函数的消失,n的地址也归还于系统。所以出现了非法访问。
既然野指针会出现,那我们应该如何避免野指针的产生。根据上面的问题,我们可以做出相应的解决方法
第一种就是初始化指针,万一我们暂时用不着这个指针我们可以使用NULL进行修饰
第二种就是禁止越界访问。
第三种指针变量不再使⽤时,及时置NULL,指针使⽤之前检查有效性。
第四种局部变量尽量不要返回地址。