ローカルでポインタのポインタを作る場合って、
2回newしないといけないのでしょうか?
例えば、下のようなことをしないといけないですか?

int** getPointerPointer()
{
int i = 123;
int* p = new int;//int値のためのメモリをロック(1回目)
*p = i;
int** pp = new int*;//intポインタのためのメモリをロック(2回目)
*pp = p;
return pp;
}

それともポインタのポインタだけnewすれば、
必要なメモリを全部ロックしてくれるんでしょうか?