Если выполняется следующее присваивание:
int a[2] = {1,2};
int* b = a;
то что с этим не так:
int a[2][2]={1,2,3,4};
int** b = a;
С++ дает ошибку, что он не может преобразовать int[][] в int**. В чем разница между двумя типами, если int[] совпадает с int*?