假设我想调整一个 int 指针数组的大小,我有一个看起来像这样的函数
template<typename T>
static void Resize(T* arr, UINT oldsize, UINT newsize) {
T* ret = new T [newsize];
memcpy(ret, arr, sizeof(arr[0]) * oldsize);
delete[] arr;
arr = ret;
};
当我尝试调整使用“new”关键字创建的元素数组(即使类内的数据本身是 POD)时,问题就开始了,因为 delete[] 触发了它们的解构函数,然后将新数组留下指向不再存在的对象。所以.. 即使对象是用“new”创建的,我不能只使用 free 命令来摆脱旧数组吗?或者以某种方式删除数组而不触发每个成员的解构器?