c++ - 删除 ptr C++ 后会发生什么
问题描述
我尝试使用以下代码示例删除 ptr:
int* data = new int(1);
int* p = NULL;
p = data;
*p = 3;
delete p;
// Prints 3
cout << *p << endl;
//Prints 3
cout << *data << endl;
最后两行代码打印出 3,我的问题是之后删除了
delete p
什么?根据最后两行代码打印出来的,好像什么都没删0.0~~
有人请给我解释一下。谢谢大家。
解决方案
delete
在您拥有d 对象后取消引用指针会导致未定义的行为。不要指望任何可预测的行为并避免它。
由于不同的角度和未定义的行为导致的悬空指针的异常读取:可以在其范围之外访问局部变量的内存吗?
推荐阅读
- python - 在 pygame 中播放音频的问题
- asp.net-core - Oracle Odp.Net Core 非异步解决方法 aspnet webapi core 5
- c++ - C++ 静态反射 TS:它会支持按名称分配/调用吗?
- python - 遍历python中的yaml列表
- firebase - 运行“flutter packages get”命令时出错
- php - 在 WooCommerce 中显示来自客户订单的账单电子邮件 我的帐户 编辑地址
- python - 我想将一个变量从一个类传递到另一个类,并使用 python 和 tkinter 在 Label 小部件中使用它
- relationship - 表之间的关系问题,以及由此导致的数据过载
- javascript - 当对象属性的属性发生更改时,如何重新渲染 litelement 组件?
- c++ - 向量构造函数的另一个违反直觉的行为