野指针、悬空指针
作者:互联网
野指针产生的原因:
- 1.指针定义时未被初始化:指针在被定义的时候,如果程序不对其进行初始化的话,它会随机指向一个区域,因为任意指针变量(出了static修饰的指针)它的默认值都是随机的
- 2.指针被释放时没有置空:指针指向的内存空间在用free()和delete释放后,如果没有对其进行置空或者其他赋值操作的话,就会成为一个野指针
- 3.指针操作超越变量作用域:不要返回指向栈内存的指针或者引用,因为栈内存在函数结束的时候会被释放。
野指针的危害:
问题:指针指向的内容已经无效了,而指针没有被置空,解引用一个非空的无效指针是一个未被定义的行为,也就是说不一定导致错误,野指针被定位到是哪里出现问题,在哪里指针就失效了,不好查找错误的原因。
规避方法:
- 1.初始化指针的时候将其置为nullptr,之后对其操作。
- 2.释放指针的时候将其置为nullptr。
标签:初始化,释放,指向,nullptr,悬空,指针 来源: https://www.cnblogs.com/0patrick/p/14415927.html