Context: I need to move all elements from an array to a new array. The old array is to be destroyed after the copy.
Code:
int* array = new int[5];
int* newArray = new int[5];
Option 1: destroy elements in the loop
for (int i = 0; i < 5; ++i) {
newArray[i] = array[i];
delete (array + i);
}
Option 2: using delete[]
for (int i = 0; i < 5; ++i) {
newArray[i] = array[i];
}
delete[] array;
Questions: What's the difference? Is delete[] more efficient than option1 (Does delete[] destroy a block of memory instead of erasing element by element? )?