我已经为扩展数组做了一个函数,这个函数在一个类中。
因为此功能会创建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;
}
由于
答案 0 :(得分:4)
假设这是一个练习,那么在重新分配到新阵列之前删除该阵列:
delete [] array;
array = new_arr;
在实际代码中,使用std::vector<int>
而不是动态分配的数组。
答案 1 :(得分: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;
}