c++中用delete释放掉一个数组元素的空间相当于删除该元素吗 10
展开全部
你要这么理解
{
int *a=new int[4];
delete a[]; //只“删除”或者说释放了int[4]的空间
a=new int[2]; //a可以继续使用
} //a自身在作用域外被释放
{
int *a=new int[4];
delete a[]; //只“删除”或者说释放了int[4]的空间
a=new int[2]; //a可以继续使用
} //a自身在作用域外被释放
追问
我想说的是:删除数组的元素时可不可以直接delete释放该元素的空间,就相当于删除掉该元素?
追答
不可以,前贴已经回答
“} //a自身在作用域外被释放 ”
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果数组中存放的 是 new出来的指针 需先遍历数组 delete每一个元素 然后在清空数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的,但是只能删除通过new产生的数组。直接写成delete []a就可以了(假设数组名是a)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是那样的,他知识释放,并没有从这个内存空间删除。
更多追问追答
追问
释放空间不就是将该元素的存储空间删掉吗
追答
不能理解为删除,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询