很微小的问题 char *p=new char[80];delete p;或delete []p;请问用delete p;正确还是用delete []p;正确?为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 delete []p;p = NULL; 你分配的是数组,当然对应的要用delete[]p;了如若是 char *p=new char('a');则对应的用delete p;p = NULL;最好将 p=NULL; 楼上对,可以做实验例子:class Test{public: Test(){printf("tt +\n");} ~Test(){printf("tt -\n");}};void main(){ { Test* pT = new Test[10]; delete pT; pT = NULL; } _getch();}10 + 1 - 对于简单基础类型delete和delete[]效果是一样,对于自定义类,就不一样了 分配的数组 应该用delete []p;如果分配单个变量 就应该用delete p;一个好的习惯 delete之后 把p=null;防止野指针的出现 #4 说的是对的,但是要多复杂才必须使用 delete[] 的确是一个不太容易清楚的地方;比如:设计一个数据结构,包含多个 int 的数据结构,也可以直接使用 delete 。 你要是不怕麻烦,可以调试跟踪一下new 和delete的源代码,看看内存是如何分配的,new delete 都涉及到析构函数的调用,不是简单的分配内存空间,也就是上面几位说的简单数据类型没事,类对象就可能有问题, delete []p;p = NULL;支持!@ 就是想弄清楚 delete []p 和 delete p 的差别到底在那里,否则基于习惯和简便,多数会使用 delete p;如果碰到必须使用 delete []p 的场合,可能发生难以调试的错误。 正解。所谓简单类型是char int long等基础类型 分配的数组 应该用delete []p;如果分配单个变量 就应该用delete p; 分配的数组 应该用delete []p;如果分配单个变量 就应该用delete p; 分配的数组 应该用delete []p;如果分配单个变量 就应该用delete p;最后置NULL,防止野指针。 貌似楼上没有人说得清楚delete []p和delete p的差别。 怎么在模态对话框中加入编辑框? 如何在COMBox下拉某列动态添加COMBox控件并设置相关属性 重重酬谢. 如何在view类里面调用App里的定义的public变量? linux问题 灰度图象的灰度深浅是通过什么值反映出来的? Tc++中有没有清屏函数?快来,在线等 有关WaitCommEvent()函数,串口通讯的问题 没什么分了,可是问题很难,对不住各位高手了。 求教各位高手,在word中我如何能判断一个用公式编辑器编辑的两个公式 编译通过运行不通过 帮助新手看看 CPU 利用率100%,WHY?
p = NULL;
如若是 char *p=new char('a');
则对应的用delete p;p = NULL;
最好将 p=NULL;
例子:
class Test
{
public:
Test(){printf("tt +\n");}
~Test(){printf("tt -\n");}
};void main()
{
{
Test* pT = new Test[10];
delete pT;
pT = NULL;
}
_getch();
}10 +
1 -
如果分配单个变量 就应该用delete p;
一个好的习惯 delete之后 把p=null;防止野指针的出现
p = NULL;
支持!@
如果分配单个变量 就应该用delete p;
如果分配单个变量 就应该用delete p;
如果分配单个变量 就应该用delete p;最后置NULL,防止野指针。