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

C++ 删除动态数组但保留指针,c++,arrays,pointers,C++,Arrays,Pointers,我做了一个扩展数组的函数,这个函数在一个类中 因为这个函数创建新的数组并将所有数组的数字复制到新的数组中,最后用新的数组设置数组的指针,我想知道如何删除数组中的数字,因为我不再需要它了 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

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

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

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;
}

感谢您在丢失指向它的指针之前释放内存:

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;
    delete[] array; //free memory
    array = new_arr;
}

在丢失指向它的指针之前释放内存:

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;
    delete[] array; //free memory
    array = new_arr;
}

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

delete [] array;
array = new_arr;

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

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

delete [] array;
array = new_arr;

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

delete[]数组;在数组之前=新建;。您还可以使用std::copy将数组复制到新的数组中。您还可以使用std::vector,忘记动态内存管理;在数组之前=新建;。您还可以使用std::copy将数组复制到新的数组。您也可以使用std::vector,忘记动态内存管理。谢谢,您的答案非常简单,您的答案非常简单