【发布时间】:2016-04-08 08:22:02
【问题描述】:
为什么在调试模式下释放静态数组有错误?
int main()
{
int ar[] = { 1,2,3,4,5,6,7,8,9 };
//other code
delete(ar);
// or free(ar);
return 0;
}
我使用free 或delete 来释放数组,并以debug mode 中的错误结束。
我是否正确使用了free 或delete?
如何释放数组?
【问题讨论】:
-
您不能动态释放分配在堆栈上的变量。只有先使用“new”才能使用“delete”。
-
有没有办法释放那个数组?
-
好吧,它在超出范围后被删除 - 所以在您的示例中
return 0;之后。 -
我在其他函数中使用了很多数组,需要释放。
-
如何释放数组? 在当前函数不退出的情况下,无法释放数组占用的堆栈空间。也许你想改用
std::vector。