请问个C++的小问题

ymy1248227142 2013-05-06 10:24:19
char *s = new char[9]
现在要delete应该是delete s呢还是delete[]s呢?谢谢
...全文
219 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymy1248227142 2013-05-09
  • 打赏
  • 举报
回复
引用 15 楼 zhao4zhong1 的回复:
new、delete 和 new[]、delete[] 不是一回事!
那具体该怎么用呢请问
那一年我们21 2013-05-09
  • 打赏
  • 举报
回复
引用 6 楼 dw903632958 的回复:
delete [] s; s = NULL;
这个最好 最后要加null 这也是C风格的c++ 最好用string 不用这样子就,自动的
就是那个党伟 2013-05-07
  • 打赏
  • 举报
回复
引用 7 楼 ymy1248227142 的回复:
[quote=引用 6 楼 dw903632958 的回复:] delete [] s; s = NULL;
3Q[/quote]
bluewanderer 2013-05-07
  • 打赏
  • 举报
回复
delete和delete []的区别在于会不会对所有元素析构。 对于有析构函数的类,new []的时候会在申请的内存里额外保存数组大小(一般的C++实现是直接delete这种内存会异常的),delete []会根据new []时保存的数组尺寸把里面的元素逐个析构。 对于没有析构函数的类型(比如你的char),delete和delete []是一样的,不过混用不是好习惯。 最好还是不要显示使用new和delete,虽然C++目前还没有和动态申请的数组直接对应的容器,但vector还能将就。常数尺寸的数组直接用array就行了。
  • 打赏
  • 举报
回复
delete s; 是只是释放了一个字符的内存 delete []s; 释放的是 s 字符串数组
dsdfsdf23 2013-05-07
  • 打赏
  • 举报
回复
delete[]s
onlyhuiyi 2013-05-07
  • 打赏
  • 举报
回复
引用 楼主 ymy1248227142 的回复:
char *s = new char[9] 现在要delete应该是delete s呢还是delete[]s呢?谢谢
自定义类型必须要加[]
慧眼识狗熊 2013-05-07
  • 打赏
  • 举报
回复
对于复杂类型有析构函数的数组,必须加[]。 简单类型的其实有没有都没关系,不加也行。
ymy1248227142 2013-05-07
  • 打赏
  • 举报
回复
引用 5 楼 xzx520soft 的回复:
delete []
3Q
ymy1248227142 2013-05-07
  • 打赏
  • 举报
回复
引用 6 楼 dw903632958 的回复:
delete [] s; s = NULL;
3Q
赵4老师 2013-05-07
  • 打赏
  • 举报
回复
new、delete 和 new[]、delete[] 不是一回事!
就是那个党伟 2013-05-06
  • 打赏
  • 举报
回复
delete [] s; s = NULL;
xzx520soft 2013-05-06
  • 打赏
  • 举报
回复
delete []
fengyuexiaoyao 2013-05-06
  • 打赏
  • 举报
回复
支持1楼 必须是delete [] s
Shana2013 2013-05-06
  • 打赏
  • 举报
回复
new对应delete,new[]对应delete[]。另外告诉你哦,delete(不管是带中括号还是不带中括号)都可以用于空指针(初始化为NULL或0的指针)。
starytx 2013-05-06
  • 打赏
  • 举报
回复
new的时候有[],delete就带上[]
nirvana_newbie 2013-05-06
  • 打赏
  • 举报
回复
应该是delete [] s; 首先delete肯定是错的。 然后delete s;只能delete数组中第一个变量。 只有delete [] s;才把数组中变量全部释放掉。

64,678

社区成员

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

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