过于C++ 中的delete用法

C++语言 码拜 8年前 (2016-04-27) 1122次浏览
#include <iostream>
using namespace std;
int main()
{
int *p = new int[4];
delete p;
if(p != NULL)
{
cout << “YES” << endl;
}
return 0;
}
以上一段代码中,无论是delete p;还是delete []p;都无法使p == NULL成立,怎么才能使p成为NULL?谢谢
解决方案

5

malloc和free
new和delete
相似
借和还
而不相似
创建和销毁
你原来记在账本上的账还了,莫非每次还费劲将其用橡皮擦掉吗?

7

delete p;
p = NULL;

7

只能赋值为NULL,delete后不是NULL,本人记得new之后自动赋值为NULL(vs2015好像是这样的)

7

delete  并不负责让p等于NULL
要让p等于NULL得本人写:p=NULL;
或本人写个宏代替

7

建议您加一句【p=NULL;】

7

delete后的指针需要本人手动置空

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明过于C++ 中的delete用法
喜欢 (0)
[1034331897@qq.com]
分享 (0)