<分区>
上下文: 我需要将所有元素从一个数组移动到一个新数组。复制后旧数组将被销毁。
代码:
int* array = new int[5];
int* newArray = new int[5];
方案一:在循环中销毁元素
for (int i = 0; i < 5; ++i) {
newArray[i] = array[i];
delete (array + i);
}
选项 2:使用 delete[]
for (int i = 0; i < 5; ++i) {
newArray[i] = array[i];
}
delete[] array;
问题: 有什么不同? delete[] 是否比 option1 更有效(delete[] 是否会破坏内存块而不是逐个元素地删除?)?