The memory model int ** and int [2] [2] is different.
int a[2][2] stored in memory as:
&a : a[0][0] &a + 4 : a[0][1] &a + 8 : a[1][0] &a + 12: a[1][1]
int** x :
&x : addr1 &x + 4 : addr2 addr1 : x[0][0] addr1 + 4: x[0][1] addr2 : x[1][0] addr2 + 4: x[1][1]
and addr1 and addr2 are only addresses in memory.
You simply cannot convert one into another.
Dani source share