野指针是什么?
- 指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。
- 指针p被free或者delete之后,没有置为NULL;
- 指针操作超越了变量的作用范围。
为了避免出现野指针,当然是从以上三四点来杜绝了~~
悬空指针和野指针有什么区别?
- 野指针:访问一个已删除或访问受限的内存区域的指针,野指针不能判断是否为NULL来避免。指针没有初始化,释放后没有置空,越界。
- 悬空指针:一个指针的指向对象已被删除。