Несмотря на то что в памяти указана то же самое, указатель на многомерный массив отличается от указателя на плоский массив. Компилятор должен преобразовать индекс [] [] в индекс плоского массива для любых многомерных массивов. Невозможно смешивать два или различие для компилятора теряется. Вы можете использовать все плоские массивы:
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}}};
, но не сочетание двух, если вы ключ компилятор в объявляя специальный тип данных за предложение Джона.
Спасибо, ребята, это было очень полезно. – Justin