c++ - 为什么在 C++ 中使用 delete 后指针不为 NULL
问题描述
我写了这篇文章,想知道为什么“已删除”没有显示为输出。
int *p=NULL;
p=new int(10);
cout<<*p<<endl;
delete p;
if(p==NULL)cout<<"deleted"<<endl;
有人可以解释为什么在使用 delete 后它没有打印以及为什么 delete 没有使指针 NULL ?
解决方案
delete
适用于指针值而不是指针变量。例如,这是完全合法的
int* some_func();
delete some_func();
正如你所看到的,这里没有变量,也没有任何东西可以设置为NULL
.
推荐阅读
- java - ISO8601 格式的时区指示符“T”和“Z”是否区分大小写?
- android - 只能在Android模拟器中运行软件,Scrollview嵌套flatlist,无法滚动
- jquery - 制表符:在同一页面中冻结多个制表符的标题而不固定高度
- node.js - 如何使用 Nodejs 中的令牌对 Cloud Storage 中的私有存储桶进行身份验证
- histogram - 分布图未在 AnyLogic 中显示条形图
- sql - 如何在postgresql中按a列分组但按b列排序
- kotlin - Kotlin 强制执行由特定类设置的属性值
- flutter - 颤动自动点击在webview中加载的html元素
- ssl - 无法使用 TLS 设置 Memcached
- javascript - 如何使用 Javascript 在 HTML 中调用 2 种不同的表单?