c++中用delete释放掉一个数组元素的空间相当于删除该元素吗 10

 我来答
种烧饼的怪叔叔
推荐于2018-03-30 · TA获得超过2214个赞
知道小有建树答主
回答量:824
采纳率:65%
帮助的人:450万
展开全部
1、delete不能用于释放数组,只能用于指针,并且指针所指的存储空间是由new申请的。也就是说一个new对应一个delete。
2、实例:
int *p,a;
int b[5];
p=&a;delete p;//非法
p=new int [5];delete []p;//合法
p=b;delete []b;//非法
3、delete之后,只是把指针所指的空间交回给系统,但是指针依然存在。
百度网友9308069
2012-03-01 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1927万
展开全部
你要这么理解
{
int *a=new int[4];
delete a[]; //只“删除”或者说释放了int[4]的空间
a=new int[2]; //a可以继续使用
} //a自身在作用域外被释放
追问
我想说的是:删除数组的元素时可不可以直接delete释放该元素的空间,就相当于删除掉该元素?
追答
不可以,前贴已经回答
“} //a自身在作用域外被释放 ”
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰血无双
2015-10-22 · TA获得超过246个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:323万
展开全部
如果数组中存放的 是 new出来的指针 需先遍历数组 delete每一个元素 然后在清空数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pchnsky
2015-11-09 · 超过30用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:45.2万
展开全部
是的,但是只能删除通过new产生的数组。直接写成delete []a就可以了(假设数组名是a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
米斯特欧阳
2012-02-29 · 超过13用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:42.3万
展开全部
不是那样的,他知识释放,并没有从这个内存空间删除。
更多追问追答
追问
释放空间不就是将该元素的存储空间删掉吗
追答
不能理解为删除,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式