【求助】DELETE数组和指针的区别?

not_a_baby 2009-12-18 11:39:24
delete数组的时候前面要加[],指针不需要,对不
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dskit 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pengzhixi 的回复:]
....怎么这么说呢 char*p=new char[10];那你说对p来说是指针还是数组呢。
[/Quote]
delete[] p;
冻结 2009-12-18
  • 打赏
  • 举报
回复
楼主的发贴频率真的很高。
xylicon 2009-12-18
  • 打赏
  • 举报
回复
应该是delete 数组指针需要加[]。普通的数组不需要delete。

例如 int* pa = new int[32];

就应该 delete[] pa;

但如果是int array[32]; 就不应该 delete[] array; 了
pengzhixi 2009-12-18
  • 打赏
  • 举报
回复
....怎么这么说呢 char*p=new char[10];那你说对p来说是指针还是数组呢。
  • 打赏
  • 举报
回复
wuyu637 2009-12-18
  • 打赏
  • 举报
回复
准确的说是delete单个对象指针的时候,不需要【】
delete指针数组的时候需要【】
Leo_red 2009-12-18
  • 打赏
  • 举报
回复
7楼解释的很详细,用的时间长了,但是原因已经不是很清楚了,只记得要用。哈哈
macrojj 2009-12-18
  • 打赏
  • 举报
回复
delete []pArray
delete pOne

对于内置类型都是差不多的

但是[]的 会给每个数组元素调用它们的析构函数 没有[]的 只调用一次析构函数
所以使用的时候 要注意 不要造成资源泄漏

64,357

社区成员

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

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