首页 > 解决方案 > 为什么在 C++ 中使用 delete 后指针不为 NULL

问题描述

我写了这篇文章,想知道为什么“已删除”没有显示为输出。

int *p=NULL;
p=new int(10);
cout<<*p<<endl;
delete p;
if(p==NULL)cout<<"deleted"<<endl;

有人可以解释为什么在使用 delete 后它没有打印以及为什么 delete 没有使指针 NULL ?

标签: c++pointers

解决方案


delete适用于指针值而不是指针变量。例如,这是完全合法的

int* some_func();

delete some_func();

正如你所看到的,这里没有变量,也没有任何东西可以设置为NULL.


推荐阅读