Выполняя свой проект, который должен использовать довольно сложные структуры, я чувствовал себя в диполе. Мне нужно объявить массив структур (меню), каждый из которых содержит массив структур (Элементы). В Visual Basic, из которого я пришел, он будет (упрощенно):C Массив структур из массива структур
type t_element
elementID as long
size as long
color as long
end type
Type t_Menu
menuID as long
numElements as long
elements() as t_element
end type
Dim Menus(10) as t_menu
Redim Menus(1).elements(5)
Я пытался что-то подобное в XC8 с:
typedef struct t_element
{
char eleID;
int size;
int color;
}Element;
typedef struct t_Menu
{
char IDmenu;
char elementNumber;
Element elements[];
}Menus;
Надеясь, что это устроиства возможно, как я могу объявить массив элемента в меню?
Это не работает:
Menus Menu[10]; //this is OK
Element Menu[1].elements[5]; //this is not
Menu[1].(Element)elements[5]; //this is not
Существует решение? Если да, что я делаю неправильно?
'элемент е = Меню [1] .elements [5];'? – arrowd
Элементы элемента []; '-> Элементы Element * и используют функции управления памятью, если ваша система их поддерживает. – MikeCAT
@MikeCAT: 'elements []' является гибким членом массива и отлично подходит и наилучшим образом подходит при использовании динамического выделения. Нет необходимости в дополнительной косвенности. Это еще больше усложняет ситуацию. – Olaf