悬挂指针与野指针
来源:互联网 发布:书生电子图书数据库 编辑:程序博客网 时间:2024/06/10 06:09
参考文档:
http://www.lai18.com/content/2447877.html
https://en.wikipedia.org/wiki/Dangling_pointer
https://zh.wikipedia.org/wiki/%E8%BF%B7%E9%80%94%E6%8C%87%E9%92%88
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
悬挂指针/Dangling Pointers/迷途指针/悬垂指针
野指针/Wild Pointers
悬挂指针是由于:指针的指向内存被删除导致
例子1:
退出if的范围之后,c变量不再存在,p指向的地址被操作系统回收了。
指针被悬挂了,后续如果再被使用就会有问题。
int *p = nullptr;
if (p == nullptr)
{
int c = 100;
p = &c;
}
例子2:变量p指向被释放了,指针被悬挂了,后续如果再被使用就会有问题。
int *p = nullptr;
{
int *q = new int
p = q;
delete q;
}
野指针多是由于:指针变量未初始化
例如下面的p指针未被初始化,它的指向就可能是随机的,再vs调试状态时,通常会调试器置为0xcccccccc,但再release-非调试状态时,值就不可预期了。
// 不初始化它的指向位置
int *p;
定位这类问题的时候:
有些时候碰到
1. debug不重现,release重现;
2. debug/release调测状态均不重现,release非调测状态可以重现
3. 优化o2启用重现,优化不启用不重现(发现一例,由虚函数引起)
可以从这几个方面先分析一下。另外定位的时候,添加调测日志的方法/window上OutputdebugStr类似方法都是比较可行的方法。
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
- 悬挂指针与野指针
- 悬挂指针 vs 野指针
- 野指针(悬挂指针)
- 面试-野指针,悬挂指针
- 野指针(悬挂指针)
- 悬挂指针与boost::weak_ptr
- 指针悬挂
- 指针悬挂
- 悬挂指针
- C/C++ 野指针、指针悬挂
- 什么是内存泄漏?野指针?悬挂指针?空指针异常?
- 指针悬挂(转)
- 指针悬挂问题
- Dangling Pointers----悬挂指针
- 指针悬挂~实例解释
- C++悬挂指针: new与delete的一些理解
- 防止指针悬挂的方法
- 指针与野指针
- ORA-00904: “MAXSIZE”: invalid identifier
- 剑指offer:二进制中1的个数(java)
- Android OkHttp3 上传多张图片
- MapReduce初试
- PHP : MySQLi【面向过程】操作数据库【 连接、建库、建表、增、删、改、查、关闭】
- 悬挂指针与野指针
- 在mac上安装scrape怎么都不成功
- 几个内部排序算法的总结(JAVA版)
- Android 使用commons-net包进行FTP开发教程
- Unity3d 去掉exe版本的边框
- View的滑动及一个跟手滑动的效果
- influxdb的用户管理
- IOS自定义字体
- 多年积累的小工具,太多了,自己研究都有些什么吧