很微小的问题

vnking 2010-07-15 04:38:51


char *p=new char[80];

delete p;

delete []p;



请问用delete p;正确还是用delete []p;正确?为什么?
...全文
170 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuiyuezhou888 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 f10icq 的回复:]
貌似楼上没有人说得清楚delete []p和delete p的差别。
[/Quote]

晕 已经很清楚啦
f10icq 2010-07-21
  • 打赏
  • 举报
回复
貌似楼上没有人说得清楚delete []p和delete p的差别。
dvlinker 2010-07-20
  • 打赏
  • 举报
回复
顶一个~
glory_manred 2010-07-20
  • 打赏
  • 举报
回复
delete p 清除首变量
windows_star 2010-07-20
  • 打赏
  • 举报
回复
分配的数组 应该用delete []p;
如果分配单个变量 就应该用delete p;

最后置NULL,防止野指针。
飞檐走壁 2010-07-20
  • 打赏
  • 举报
回复
分配的数组 应该用delete []p;
如果分配单个变量 就应该用delete p;
飞檐走壁 2010-07-20
  • 打赏
  • 举报
回复
分配的数组 应该用delete []p;
如果分配单个变量 就应该用delete p;
yunxiang_myx 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zuiyuezhou888 的回复:]

分配的数组 应该用delete []p;
如果分配单个变量 就应该用delete p;
一个好的习惯 delete之后 把p=null;防止野指针的出现
[/Quote]

顶,一定要记的置空。很容易忘记的一个地方!
BlueMap 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]

对于简单基础类型delete和delete[]效果是一样,对于自定义类,就不一样了
[/Quote]
正解。所谓简单类型是char int long等基础类型。。。
vnking 2010-07-19
  • 打赏
  • 举报
回复
就是想弄清楚 delete []p 和 delete p 的差别到底在那里,否则基于习惯和简便,多数会使用 delete p;如果碰到必须使用 delete []p 的场合,可能发生难以调试的错误。
churenxh 2010-07-19
  • 打赏
  • 举报
回复
delete []p;
p = NULL;
支持!@
xiaoyilong19 2010-07-19
  • 打赏
  • 举报
回复
你要是不怕麻烦,可以调试跟踪一下new 和delete的源代码,看看内存是如何分配的,new delete 都涉及到析构函数的调用,不是简单的分配内存空间,也就是上面几位说的简单数据类型没事,类对象就可能有问题,
lazy_2010 2010-07-18
  • 打赏
  • 举报
回复
#4 说的是对的,但是要多复杂才必须使用 delete[] 的确是一个不太容易清楚的地方;

比如:设计一个数据结构,包含多个 int 的数据结构,也可以直接使用 delete 。
lingdu787 2010-07-18
  • 打赏
  • 举报
回复
楼主想知道啊?
tangbohu222 2010-07-17
  • 打赏
  • 举报
回复
我顶 我顶 我顶 我顶 我顶
一名程序员 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cpp_yangzuoshi 的回复:]
delete []p;
p = NULL;
[/Quote]正解!
tanguixing 2010-07-17
  • 打赏
  • 举报
回复
想要的目的是什么呢/?
汪宁宇 2010-07-17
  • 打赏
  • 举报
回复
不需要汇编解释吧?

一个是数组首地址、一个是指针,应该就明白了嘛?
vnking 2010-07-17
  • 打赏
  • 举报
回复
从汇编代码的角度看,两者的差别在哪里?
tubo_true 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zuiyuezhou888 的回复:]

分配的数组 应该用delete []p;
如果分配单个变量 就应该用delete p;
一个好的习惯 delete之后 把p=null;防止野指针的出现
[/Quote]
up
加载更多回复(7)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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