Да, с перебором в цикле - проблема :) . Но как Вы могли догадаться, в массиве Text[] храниться текст :) , и вообщем-то данный приём только для текста-то и полезен, ибо в цикле чаще всего стоит условие while ( '\0' != Text[i++]) то есть перебираем весь массив, допустим для печати.
Ну а в плане инициализации то:
typedef struct {
void *Next;
void *Previous;
void *Parent;
void *Sibling;
FuncPtr SelectFunc;
FuncPtr EnterFunc;
const char Text[];
} Menu_Item PROGMEM;
Menu_Item MyStruct = {(void*)&SomePtr, (void*)&SomePtr, (void*)&SomePtr, (void*)&SomePtr, (FuncPtr)SomeFnc, (FuncPtr)SomeFnc, { "SomeTEXT" }};
Ну а полный код взят собственно здесь:
http://electronix.ru/forum/index.php?act=A...st&id=10450