Я хочу иметь один массив из 7 элементов, хранящий ссылки на вышеупомянутые 7 массивов.Таким образом, вызывая schedule [1], я получаю schedule1 [24], то есть понедельник.
Для индексации по дням необходим другой подход.Это можно сделать с помощью двумерного массива и некоторой арифметики указателей.
Объявите двумерный массив для ваших расписаний:
byte schedulesArray[7][24];
Объявите указатели, которые указывают на расписания на каждый день:
byte *schedule0 = &schedulesArray[0][0];
byte *schedule1 = &schedulesArray[1][0];
byte *schedule2 = &schedulesArray[2][0];
byte *schedule3 = &schedulesArray[3][0];
byte *schedule4 = &schedulesArray[4][0];
byte *schedule5 = &schedulesArray[5][0];
byte *schedule6 = &schedulesArray[6][0];
Объявите указатель на первый элемент двумерного массива:
byte *schedules = &schedulesArray[0][0];
Итак, если мы запустим некоторые данные:
schedule0[0] = 1;
schedule1[0] = 11;
schedule1[1] = 12;
schedule2[0] = 21;
schedule2[1] = 22;
Тогда вы можете использоватьуказатель schedules
на индекс по дням:
schedules[0]; // = 1
schedules[24]; // = 11
schedules[25]; // = 12
schedules[48]; // = 21
schedules[49]; // = 22
Это работает, потому что многомерные массивы расположены как непрерывный блок памяти.