1

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

因为这个函数创建new_arr并复制所有的数字arraynew_arr最后设置指针arraywith 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;
}

谢谢

4

2 回答 2

4

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

delete [] array;
array = new_arr;

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

于 2012-11-16T11:22:32.820 回答
3

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

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;
}
于 2012-11-16T11:22:30.277 回答