高手请进:关于delete 以及 delete[]

apcad 2005-01-06 05:04:50
定义:
Class A {
...
};

现在A *p_A = new A[1]; //只申请一个

使用delete p_A跟delete []p_A有什么区别么?
我认为是一样的,没有区别的,大家认为呢?请给出依据。
...全文
378 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
apcad 2005-01-15
  • 打赏
  • 举报
回复
谢谢各位,揭帖
mazhaono1 2005-01-07
  • 打赏
  • 举报
回复
关注,楼上提的问题很好,我也不懂!!
apcad 2005-01-07
  • 打赏
  • 举报
回复
来个复杂点的,请各位讨论
A **p_A = new A*[size];//指向指针的指针
delete []p_A以及delete p_A的区别;//二者删除后均不会造成内存泄漏。为什么?
melonliu 2005-01-07
  • 打赏
  • 举报
回复
申明以下讨论为纯理论!!

new A*[size] 应该是申请 size个A*类型的堆
sherlman 2005-01-07
  • 打赏
  • 举报
回复
new A*[size] 代表什么??? 有这种写法吗?
A **p_A 代表 p_A 是一个指向指针(或指针数组)的指针
qnjian 2005-01-07
  • 打赏
  • 举报
回复
上面的问题,我的理解:A[size]是一个指针数组;p_A则是一个指向指针数组的指针,它只是一个指针,不需要以数组的方式分配空间,因些delete []p_A以及delete p_A是没有区别的。但是,
delete []A以及delete A就有区别了。
diandian82 2005-01-07
  • 打赏
  • 举报
回复
关注!
lovefly_fanny 2005-01-06
  • 打赏
  • 举报
回复
建议一直都加[]好了,不会出错
xiaolizi 2005-01-06
  • 打赏
  • 举报
回复

所有楼上回帖的朋友,你们在回答的时候有做过测试吗?这样不是在误人子弟?

我在vs2003.net 上试了一把
A *p_A = new A[1];
delete p_A是会当机的,当然这是在debug模式下,我相信在release模式下编译器做优化的时候应该是可能正确的。new A[1]; 和new A;在内存分配和管理上还是有一些不同的。

http://community.csdn.net/Expert/topic/3671/3671718.xml?temp=.2988855
idau7 2005-01-06
  • 打赏
  • 举报
回复
对象是一个的话,你加不加[]无所谓.

具体,楼上的有人说很清楚了.

new数组,还是要用delete []好.
ww51xh 2005-01-06
  • 打赏
  • 举报
回复
char *p = new char;
char *pArray = new char[100];


delete p;//删除指针p
delete pArray;//删除pArray
delete[] pArray;//删除pArray数组
oyljerry 2005-01-06
  • 打赏
  • 举报
回复
一个delete效果应该差不多
oyljerry 2005-01-06
  • 打赏
  • 举报
回复
new A(1)是申请并初始化
greenteanet 2005-01-06
  • 打赏
  • 举报
回复
是的,上面那个要传给构造函数才能实现赋值
melonliu 2005-01-06
  • 打赏
  • 举报
回复
new A(1) 里面的 1 是参数,A需有响应的构造函数
CMyMfc 2005-01-06
  • 打赏
  • 举报
回复
new A(1);
括号中的东西是传给构造函数的
guyanhun 2005-01-06
  • 打赏
  • 举报
回复
我有一点疑问:
现在A *p_A = new A[1]; //只申请一个,
A *p_A = new A(1); 呢? 就是新申请一个字节的内存空间
并且声明了一个无名对象了吗 ?
greenteanet 2005-01-06
  • 打赏
  • 举报
回复
一般情况下用new申请一个数组后释放时都应该用delete [];
hundlom 2005-01-06
  • 打赏
  • 举报
回复
在此出效果一样
hundlom 2005-01-06
  • 打赏
  • 举报
回复
delete p_A 只删除一个
delete []p_A 全部删除
加载更多回复(9)

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧