悬空指针和野指针

悬空指针


指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。
影响:
引发的错误无法定位,难以调试。
比如:
p指针内存释放,又定义了p1指针,但p1被系统分配的内存与p相同,那么如果下面改了p指的值,p1指向的内容也会改,这样就出错了。
悬空指针和野指针

避免方法:
在释放内存之后,常常会将指针 p 赋值为 NULL:
悬空指针和野指针

野指针:

不确定其具体指向的指针。“野指针”最常来自于未初始化的指针
例子:悬空指针和野指针

影响:
因为“野指针”可能指向任意内存段,因此它可能会损坏正常的数据,也有可能引发其他未知错误。