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,忘记动态内存管理。谢谢,您的答案非常简单,您的答案非常简单