编程论坛
注册
登录
编程论坛
→
C++教室
delete[]
全世界安静
发布于 2012-08-30 13:52, 373 次点击
int* date=new int[3];
delete[] date;
if(!date) cout<<"date null!\n";
结果未显示,难道delete之后,date不为空值吗?
6 回复
#2
dz789989
2012-08-30 14:26
#include <iostream>
using namespace std;
void main()
{
int* date=new int[3];
delete[] date;
if(date)
{
cout<<"date null!\n";
}
}
这样就显示输出信息了
#3
dz789989
2012-08-30 14:29
#include <iostream>
using namespace std;
void main()
{
int* date=new int[3];
delete []date;
cout<<date;
if(date)
{
cout<<"date null!\n";
}
}
date虽然清了 但是地址还在 非0就是真 你可以运行一下看看
#4
dz789989
2012-08-30 14:33
你要再将指针赋为空以后才行 不然只是删除指向的对象
#5
rjsp
2012-08-30 14:36
delete p 是释放p的值所指示的内存
而非释放p的值本身
#6
Aidoneus
2012-08-30 19:26
因为
int* date=new int[3];
delete[] date;
if(!date) cout<<"date null!\n"; // 这段判断语句中加了!非运算符、所以条件反了、应去掉!才能输出。
#7
zhuanjia0
2012-08-30 23:18
int* date=new int[3];
delete[] date;
delete只释放new申请的空间,而date指针本身指向的地址没变,变成了野指针,所以应该在后面加上date=NULL;
1