c++ - 删除动态数组但保留指针

标签 c++ arrays pointers

我做了一个扩展数组的函数,这个函数在一个类中。

因为这个函数创建了 new_arr 并将 array 中的所有数字复制到 new_arr 中,最后设置了 array 的指针new_arr,我想知道如何删除 array 中的数字,因为我不再需要它了

void Array::bigger() {
    int  new_size = size * 2;
    int *new_arr = new int[new_size];
    for (int f1=0; f1<last; f1++) {
        new_arr[f1] = array[f1];
    }
    this->size = new_size;
    array = new_arr;
}

谢谢

最佳答案

假设这是一个练习,然后在重新分配给新数组之前删除数组:

delete [] array;
array = new_arr;

在实际代码中,使用 std::vector<int>而不是动态分配的数组。

关于c++ - 删除动态数组但保留指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415572/

相关文章:

c++ - 以阻塞方式在 OpenGL 中渲染纹理(视频),因此我收到的视频帧在渲染时不会被新帧替换

c - 即使参数计数正确,也无法运行的参数太少

c - 为什么我可以通过指针转换更改局部 const 变量而不是 C 中的全局变量?

php - 简化从mysql数据库取数据的代码

c - 初始化结构指针数组会导致奇怪的错误

c - C 中的二维数组和警告 : assignment makes integer from pointer without a cast

c++ - 使用指向 <Employee> vector 的唯一指针 vector

javascript - 找不到模块'../build/Release/opencv4nodejs

c++ - 为什么 std::move() 在 C++ 中工作?

c++ - 取消引用指向其类内对象的指针