传智播客视频学习 ---->>>> 野指针产生原因和避免方法
2015-11-21 19:41
309 查看
野指针产生的原因:
1,指针变量和他所指向的内存空间变量是两个不同的概念
2,虽然调用free(p)方法释放了指针所指向的内存空间,但是指针变量并没有重置成NULL
3,造成释放了所指向的内存空间之后,使用 if( p != NULL ) 还会被执行,还会执行其中的 free() 方法
避免方法:
1,定义指针的时候,初始化其值为 NULL ( char *p = NULL; )
2,释放指针所指向的内存空间之后,把指针重置成 NULL
1,指针变量和他所指向的内存空间变量是两个不同的概念
2,虽然调用free(p)方法释放了指针所指向的内存空间,但是指针变量并没有重置成NULL
3,造成释放了所指向的内存空间之后,使用 if( p != NULL ) 还会被执行,还会执行其中的 free() 方法
避免方法:
1,定义指针的时候,初始化其值为 NULL ( char *p = NULL; )
2,释放指针所指向的内存空间之后,把指针重置成 NULL
······ char *p = NULL; ······ if ( p != NULL ){ free( p ); p = NULL; } ······
相关文章推荐
- bzoj2124 等差子序列(hash+线段树)
- 关于设置UILabel的文本缩进
- 从最大似然到EM算法浅解
- 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
- vim简单的文本编辑命令
- [AlwaysOn Availability Groups]AlwaysOn健康诊断日志
- Deep Learning(深度学习)学习笔记整理系列之(八)
- 在Ubuntu 14.04 64bit上使用JBL Charge2+无线蓝牙音箱听歌指南
- Android dumpsys 命令解析
- fedora22 安装fcitx 输入法
- grub2 设置Windows为默认启动系统
- Deep Learning(深度学习)学习笔记整理系列之(七)
- view.setTag()和view.getTag()
- AFS结束使命新产品FMS上市
- Win8系统下安装Oracle11g时,安装程序报错:[INS-13001]环境不满足最低要求解决方法
- Deep Learning(深度学习)学习笔记整理系列之(六)
- 怎样成长为一个优秀的web前端工程师
- 设置win版vim启动项[利刃篇]
- 用户不在sudoers文件中的解决方法
- Deep Learning(深度学习)学习笔记整理系列之(五)