如果在 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 []) 上使用的指针。