野指针
来源:互联网 发布:掌门1对1 知乎 编辑:程序博客网 时间:2024/04/29 02:27
定义
“野指针”不是NULL指针,是指向“垃圾”内存(不可用内存)的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。
成因
一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。
三、指针操作超越了变量的作用范围。
综上所述,有个良好的编程习惯是避免“野指针”的唯一方法。
- 野指针?空指针?
- 智能指针 野指针
- 野指针、空指针
- 野指针 空指针
- 指针与野指针
- 指针,野指针
- 野指针,空指针
- 一级指针-野指针
- 野指针 空指针
- 指针辨析:悬垂指针、哑指针、野指针、智能指针
- 指针辨析:悬垂指针、哑指针、野指针、智能指针
- 指针辨析:悬垂指针、哑指针、野指针、智能指针
- void* 指针、NULL指针、零指针、野指针、悬垂指针
- void* 指针、NULL指针、零指针、野指针、悬垂指针
- 空指针NULL、野指针、通用指针
- NULL指针、零指针、野指针
- 空指针,野指针,通用指针
- NULL指针、零指针、野指针
- js keycode列表
- file.alert - log alert to a file
- Hibernate Tools 方便查看国际化属性文件
- ASP.NET MVC4中调用WEB API的四个方法
- 大型网站架构设计及技术分析
- 野指针
- netpage.alert - network page alert for mon
- spring bean 作用域
- 使用Struts2时出现There is no Action mapped for namespace / and action name .
- JS中的正则表达式用法
- thinkphp oracle 时间字段模板显示
- SQL Server创建存储过程
- qpage.alert - send an alert via QuickPage
- 设计模式(2)——简单工厂模式