【发布时间】:2021-07-18 18:50:57
【问题描述】:
如果我创建了一个 Zebras 的动态数组,然后说,我创建了一个新的 Temp 数组,我想在其中传输原始数组中的对象。
然后我将指针从原始数组移动到临时。在 move array = temp 之前我需要删除旧的数组项吗?
另外,我似乎泄漏但不知道为什么,我似乎删除了数组和指针。
class Zebra {
public:
//int age = 0;
};
int main() {
Zebra** array = new Zebra * [10];
for (int i = 0; i < 10; i++) {
array[i] = new Zebra;
}
Zebra** temp = new Zebra * [20];
for (int i = 0; i < 10; i++) {
temp[i] = array[i];
}
// do i need to delete the old array items before move array = temp?
array = temp;
delete[]temp;
temp=NULL;
for (int i = 0; i < 10; i++) {
delete[]array[i];
array[i]=NULL;
}
delete[]array;
array= NULL;
}
【问题讨论】:
-
显而易见的问题是——你为什么不使用
std::vector?为什么要制造方向盘而不是使用已经内置在汽车中的方向盘? -
CS入门,学习指点