I was always wondering if there is operator for deleting multi dimensional arrays in the standard C++ language.
If we have created a pointer to a single dimensional array
int *array = new int[size];
the delete looks like:
delete [] array;
That’s great. But if we have two dimension array, we can not do
delete [][] twoDimenstionalArray;
Instead, we should loop and delete the items, like in this example.
Can anybody explain why?
Technically, there aren’t two dimensional arrays in C++. What you’re using as a two dimensional array is a one dimensional array with each element being a one dimensional array. Since it doesn’t technically exist, C++ can’t delete it.