Хотя он размещен в памяти одинаково, указатель на многомерный массив отличается от указателя на плоский массив. Компилятор должен преобразовать индекс [] [] в индекс плоского массива для любых многомерных массивов. Не могу смешать два или различие для компилятора потеряно. Вы можете использовать все плоские массивы:
static int dataSet00[2] = {0,1};
static int dataSet01[2] = {2,3};
static int * dataSet0[2] = {dataSet00, dataSet01};
static int dataSet10[2] = {4, 5};
static int dataSet11[2] = {6, 7};
static int * dataSet1[2] = {dataSet10, dataSet11};
static int ** dataSets[2] = {dataSet0, dataSet1};
или один большой многомерный массив:
static int dataSets[2][2][2] = {{{0,1},{2,3}},{{4,5},{6,7}}};
но не комбинация двух, если вы не укажете компилятор, объявив специальный тип данных в соответствии с предложением Джона.