如果在使用C ++创建arr的函数之外调用,delete []是否会释放内存?
我的意思是,如果我有这样的东西
double* f()
{
double* arr = new double[100];
return arr;
}
void ff()
{
double* arr = f();
delete [] arr;
}
是否会在ff()
?
答案 0 :(得分:3)
是的,它会被正确删除(与delete
相同)。只要你跟踪指针,就可以在分配内存的函数之外删除它。
答案 1 :(得分:2)
是。 new(和new [])返回一个指针,指针就是你需要在相应的delete(和delete [])上使用的。