c++ - 如果在 C++ 中创建 arr 的函数外部调用,delete [] arr 是否会释放内存?

标签 c++ arrays pointers memory-management delete-operator

如果在 C++ 中创建 arr 的函数外部调用,delete [] arr 是否会释放内存?

我的意思是如果我有这样的东西

    double* f()
    {
    double* arr = new double[100];
    return arr;
    }

void ff()
{
double* arr = f();
delete [] arr;
}

会在 ff() 中被正确删除吗?

最佳答案

是的,它将被正确删除(与delete 相同)。只要您跟踪指针,就可以在分配内存的函数之外删除它。

关于c++ - 如果在 C++ 中创建 arr 的函数外部调用,delete [] arr 是否会释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079035/

相关文章:

使用 C 从另外两个数组中的最小整数创建第三个数组

计算数组元素的百分比

c++ - 在 C++ 中应用删除运算符后,地址会发生什么变化?

c++ - 计算大量数据的中位数

c++ - 将未知大小的二维数组传递给函数 C++

c++ - WSASocket() 应该与 IOCP 一起使用吗?

c++ - int* 参数是否与 int[] 参数完全相同

c++ - 为什么 gettimeofday() 间隔偶尔为负数?

java - 如何通过 Unix 输入重定向将文件作为数组输入到我的 java 程序中?

c - 从二维数组参数运行 execvp