I can visualize the situation when, for example, I have allocated memory in the following way:
Position* arr1 = new Position[5];
Position being a class in my program that describes a positional point with x and y values.
There would be a pointer on the stack that points to the first element (a Position object) of the array "arr1" on the heap so it would look something like this:

How would it look if I were to create an array of pointers though? For example:
Position** arr2 = new Position* [2];
arr[0] = new Position(3, 7); // Constructs a point with x and y values.
arr[1] = new Position(9,6);
Where are all the pointers and objects stored in the memory in my second example? Are there pointers on the stack that point to pointers on the heap which then point to the objects on the heap or something?
Also, if I were to delete [] arr2;, where would the objects remain in the memory?
Thanks.