如果在 C++ 中创建 arr 的函数外部调用,delete [] arr 是否会释放内存?
Does delete [] arr frees up the memory if called outside the function in which the arr was created in C++?
如果在 C++ 中创建 arr 的函数外部调用,删除 [] arr 是否会释放内存?
我的意思是如果我有这样的东西
double* f()
{
double* arr = new double[100];
return arr;
}
void ff()
{
double* arr = f();
delete [] arr;
}
是否会在 ff()
中正确删除?
是的,它会被正确删除(与delete
相同)。只要跟踪指针,就可以在分配内存的函数之外删除它。
是的。 new (and new []) returns 一个指针,这个指针就是你需要在相应的 delete (and delete []) 上使用的指针。
如果在 C++ 中创建 arr 的函数外部调用,删除 [] arr 是否会释放内存?
我的意思是如果我有这样的东西
double* f()
{
double* arr = new double[100];
return arr;
}
void ff()
{
double* arr = f();
delete [] arr;
}
是否会在 ff()
中正确删除?
是的,它会被正确删除(与delete
相同)。只要跟踪指针,就可以在分配内存的函数之外删除它。
是的。 new (and new []) returns 一个指针,这个指针就是你需要在相应的 delete (and delete []) 上使用的指针。