habe es hingekriegt, bin selber überrascht:

Code:
 tMenu (int16_t menulen, int16_t linelen, char ** extlist, tMenu* pMenu) :   // constructor
     MENULEN(5), LINELEN(11), VISLNUM(5), FONTHI(13), act(0)  
     {
        firstvln=0; lastvln=0; displn=0;     
        act=0;
        MENULEN = menulen;  // number of available menu options        
        LINELEN = linelen;  // line length of menu options       
        preMenu = pMenu;    // predesessor menu       
                
        list = new char*[MENULEN];
        for(int i = 0; i < MENULEN; i++)
        {
          list[i] = new char[LINELEN+1];
          strncpy( list[i], extlist[i], strlen(extlist[i]));
        }                            
     }
Code:
char * mlist0[11] = {"Titel 0","Zeile1","zu menu02>","Zeile3","Zeile4","Zeile5"}; 
tMenu menu0(6,11, (char**)mlist0, &menu0);  // numEntries, lineLength, preMenu (N/A);

char * mlist02[11] = {"Titel 02","ESC>","Zeile2","Zeile3","zu menu024"};
tMenu menu02(5,11, (char**)mlist02, &menu0);  // numEntries, lineLength, preMenu=menu0;
 
char * mlist024[11] = {"Titel 024","ESC >","Ja","Nein","foo","bas"}; 
tMenu menu024(6,11, (char**)mlist024, &menu02); // numEntries, lineLength, preMenu=menu02;
Ausgabe der Menüs, völlig korrekt (Ausgabe hier testweise nur immer max. 5 Einträge):
Code:
>Titel 0
 Zeile1
 zu menu02>
 Zeile3
 Zeile4

>Titel 02
 ESC>
 Zeile2
 Zeile3
 zu menu024

>Titel 024
 ESC >
 Ja
 Nein
 foo