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

2024-12-21 11:04:17
推荐回答(3个)
回答1:

这样定义数组的话是在栈上分配内存,超过作用域范围的时候会自动释放掉,使用new操作符分配的内存,是在堆上,需要使用delete释放,因此如果像你那样定义数组的话,不必释放内存

回答2:

不行
运算符delete必须用于先前new分配的有效指针,如果用delete释放的内存空间不是用new申请的,可能会引起程序运行错误。
char
aa[100];
这样定义的,不用手动释放内存空间

如果是
char
*aa;
aa=new
char[100];
.
.
.
.
delete
[]aa;

回答3:

只有通过new申请的内存块才需要用delete释放
如char
*p
=
new
char[10];
要用delete
[]p;释放
而其它的不用(如LZ举的例子
char
aa[100])