First off, are you sure you want to make a pointer that points to pointers?
What are you even trying to do?
And second, the reason this doesn't work is in simple terms you are trying to put two int pointers into an array of integers.
when you have
int **p;
This is a pointer that points to a pointer
So in order to allocate space for this you would do
p = new int*[2];
What are you trying to do though? If you don't have a very good understanding on pointers you really should not use them.
Oh okay I've never worked with that.
Also, don't forget that every time you call new, you need to call delete or else you'll have memory leaks!
Good luck!