I define
Code:
typedef struct
{
uint32_t menu_id;
char *menu_text;
}MENU_ITEM;
typedef struct
{
uint32_t menu_id;
uint8_t * menu_text;
MENU_ITEM *submenu;
}MENU;
And initialization
Code:
MENU_ITEM sub_menu_maint[] = { {0, "NULL"}, {1, "IBITS"}, {2, "SW VER"}, {3, "CONFIG"}, {4, "UPLOAD"} };
MENU_ITEM sub_menu_fails[] = { {0, "NULL"}, {0, "MF"}, { 1, "HF"}, { 2, "FAILED"}, { 3, "BACK"} };
MENU menu[] =
{
{ 0, " " , NULL }, //DEFAULT
{ 1, "FAILS " , sub_menu_fails },
{ 2, "MAINT" , sub_menu_maint },
};
Now I need two dimensional array
Code:
typedef struct
{
uint32_t menu_id;
uint8_t * menu_text;
MENU_ITEM **submenu;
}MENU;
static MENU_ITEM sub_menu_fails[2][] =
{
{ {0, "MF"}, { 1, "HF"}, { 2, "FAILED"}, { 3, "BACK"} },
{ {0, "MF"}, { 1, "HF"}, { 2, "FAILED"} }
};
I get an error
array type has incomplete element type
But I can not to define it like sub_menu_fails[2][4] because the second dimention varies.
What should I do?