c++中,可以用delete释放一个数组的空间吗?

数组是这样定义的:charaa[100];那用完之后如何释放这100个字节的空间呢?我记得delete只能释放指针空间。... 数组是这样定义的:

char aa[100];

那用完之后如何释放这100个字节的空间呢?我记得delete只能释放指针空间。
展开
 我来答
百度网友74d57df
推荐于2017-09-26 · TA获得超过2769个赞
知道大有可为答主
回答量:1043
采纳率:100%
帮助的人:1370万
展开全部
用delete释放的只能是用new动态分配的数组空间,若数组不是动态分配的则不能用delete释放。
举两个例子详细说明一下:
int a[100];
这个数组a是不能用delete释放空间的,因为这个数组a在声明时就已经说明了空间的大小,在最后程序会自动释放这个空间。
int *b;
b=new int[100];
这个要在最后用delete []b; 语句来动态释放,因为数组b是一个动态数组,数组空间是动态分配的,程序是不能自动释放的,所以要自己用delete来释放。
dongbeilaidi
推荐于2017-09-22 · 超过10用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:30.8万
展开全部
这样定义数组的话是在栈上分配内存,超过作用域范围的时候会自动释放掉,使用new操作符分配的内存,是在堆上,需要使用delete释放,因此如果像你那样定义数组的话,不必释放内存
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenyao_1989
2008-07-20
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
不行
运算符delete必须用于先前new分配的有效指针,如果用delete释放的内存空间不是用new申请的,可能会引起程序运行错误。
char aa[100];
这样定义的,不用手动释放内存空间 。
如果是
char *aa;
aa=new char[100];
.
.
.
.
delete []aa;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
2008-07-20 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1665万
展开全部
只有通过new申请的内存块才需要用delete释放

如char *p = new char[10];

要用delete []p;释放

而其它的不用(如LZ举的例子 char aa[100])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanskydream
2008-07-20 · 超过25用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:94.9万
展开全部
可以的。
如果这个数据是在堆上分配的内存可以用 delete来释放

delete []aa;
这样就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式