请教一个关于new与delete的小问题。
Posted on 八月 16rd, 2007 由 admin
我只知道当有一个类a的时候,用了p=new a[10];应该用delete [] p;
可我不知道用类似于p=new char[10]的时候,应该用delete [] p,还是直接delete p;
能讲解得深点吗?
谢谢,虽然问题有点菜。
推荐阅读
网友:sevecol
p=new char[10]
创建了10个char对象(数组)
所以删除的时候需要调用delete[] p;
当你对使用new创建出来的数组的指针p使用delete p的时候,数组的其他对象不会调用他们的析构函数。
网友:zlj617
如果用delete p的话,那么相当于delete p[0],漏掉了9个对象!
网友:blh
最好使用new [] 和 delete []匹配
网友:czylz
一定要注意到“匹配”
网友:jack_wq
delete [] p,注意匹配!
网友:yjh1982
同上...接分
网友:sevecol
在windows平台应该不会有内存泄漏吧。
网友:sevecol
但是其他对象如果也动态分配了内存,本来是在析构函数内delete的,可是由于析构函数没有执行,这样会产生内存泄漏。
.

讨论区