我在这里搜索了很多主题,但他们似乎没有准确回答我。
我正在尝试在 C++ 中做一些动态重新分配 od 数组。我不能使用 STL 库中的任何东西,因为我需要在明确禁止 STL(向量,...)的作业中使用它。
到目前为止,我试图用这样的代码来详细说明:
int * items = new int[3]; //my original array I'm about to resize
int * temp = new int[10];
for (int i = 0; i < 3; i++) temp[i] = items[i];
delete [] items; //is this necessary to delete?
items = new int [10];
for (int i = 0; i < 10; i++) items[i] = temp[i];
delete [] temp;
这似乎可行,但困扰我的是迭代次数过多。这不能更聪明地完成吗?显然,我正在使用比这更大的数组。不幸的是,我必须使用数组。
编辑:当我尝试做items = temp;
而不是
for (int i = 0; i < 10; i++) items[i] = temp[i];
并尝试std::cout
我所有的元素,我最终失去了前两个元素,但valgrind正确打印了它们。