Я пытаюсь создать указатель массива разных структур с разными размерами каждой структуры. Я имею в виду...
1. У меня есть структурная доля для всех остальных структур.
typedef struct {
uint8_t TouchAreasCodes;
uint8_t TouchEditFunctions;
uint8_t TouchCalbackFunctions;
bool TouchRelease;
} APP_TOUCH_PAGES;
Основываясь на этой структуре, мне нужно создать разные "подструктуры" с разными размерами. Эти структуры являются массивами исходной структуры.
APP_TOUCH_PAGES TOUCH_PAGE_1 [5];
APP_TOUCH_PAGES TOUCH_PAGE_2 [5];
APP_TOUCH_PAGES TOUCH_PAGE_3 [5];
APP_TOUCH_PAGES TOUCH_PAGE_4 [16];
...
Каждая из этих «подструктур» будет иметь разный размер. Как мы видим выше, некоторые из них будут 5 размера, другие 16, другие могут быть 8 ...
Мне нужно указать на каждую «подструктуру» из массива указателей. Каждая позиция массива указателей будет указывать на каждую из подструктур.
* ArrayTouchPages [165];
Например:
*ArrayTouchPages[0] -> TOUCH_PAGE_1[0].TouchAreasCodes
*ArrayTouchPages[0] -> TOUCH_PAGE_1[1].TouchAreasCodes
...
*ArrayTouchPages[3] -> TOUCH_PAGE_4[14].TouchAreasCodes
*ArrayTouchPages[3] -> TOUCH_PAGE_4[15].TouchAreasCodes
Я пробовал много вещей, но всегда терпел неудачу. например:
struct TOUCH_PAGE_MODBUS_ADDRESS * ArrayTouchPages [0];
ArrayTouchPages [0] -> TouchAreasCodes = 14;
АЛЬТЕРНАТИВА:
Единственная альтернатива, которая должна работать:
Создание различных структур: одна структура для каждой "страницы" ..
struct PAGE_1 {
uint8_t TouchAreasCodes[5];
uint8_t TouchEditFunctions[5];
uint8_t TouchCalbackFunctions[5];
bool TouchRelease[5];
}
struct PAGE_4 {
uint8_t TouchAreasCodes[16];
uint8_t TouchEditFunctions[16];
uint8_t TouchCalbackFunctions[16];
bool TouchRelease[16];
}
Затем укажите от массива указателей до каждого:
struct PAGE_1 * ArrayTouchPages [0], PAGE_1_ptr;
ArrayTouchPages [0] = & PAGE_1_ptr;
ArrayTouchPages [0] -> TouchAreasCodes [0];
ArrayTouchPages [0] -> TouchAreasCodes [5];
Что я делаю не так в первом методе? Я думаю, что это более ясный и надежный способ, потому что, если я решу добавить новое поле внутри
исходную структуру я буду применять ко всем «подструктурам». И инициализировать массив указателей также будет проще.
Есть идеи или предложения?
Большое спасибо за поддержку.
С уважением,