C++基础 指针<二>关于野指针

120 阅读1分钟

未初始化和非法的指针

image.png

运气好的情况:定位到一个非法地址,程序会出错,从而终止 运气差的情况:定位到一个可以访问的地址,无意修改了它,这样的错误难以捕捉,引发的错误,可能与原先用于操作的代码完全不相干

NULL指针

一个特殊的指针变量,表示不指向任何东西

int *a = NULL;
  • NULL指针 它给了一种方法,来表示特定的指针目前未指向任何东西 使用注意事项:
  • 对于一个指针,如果已经知道将被初始化为什么地址,那么请赋给它这个地址值,否则请把它设置为NULL
  • 在对一个指针进行间接引用前,请先判断这个指针的值是否为NULL

杜绝野指针

指向“垃圾”内存的指针,if等判断对它们不起作用,因为没有置NULL

一般有三种情况

  1. 指针变量没有初始化
  2. 已经释放不用的指针没有置为NULL,如delete和free之后的指针(清除heap)
  3. 指针操作超越了变量的作用范围 {}

指针使用的注意事项

没有初始化的、不用的或者超出范围的指针请把值置为NULL