Zweidimensionales Feld in c initialisieren

Begonnen von pic18, 03.05.2022, 22:17:33 CEST

Vorheriges Thema - Nächstes Thema

pic18

Hallo, ich habe schon lange nichts mehr in C programmiert. Nun möchte ich in meinem größeren Projekt ein Menü programmieren um Einstellungen vorzunehmen. Da sich die Reihenfolge noch ändert möchte ich die Initialisierung flexibel halten.

ich habe folgenden Programmcode geschrieben:

typedef enum test{
    hk2_schpr,
    hk2_pause,
    hk2_party,
    hk2_tag,
    hk2_nacht,
    hk2_betr,
    ww_solltemp,
    ww_betr,
    ww_einmal,
    zp_betr,
    ascii,
    }
    ausw_menu_t;
   
ausw_menu_t ausw_aktuell=hk2_schpr; //0
menu_ems_buffer_t menu_ems_buffer[buffer_size];

void ausw_mark(uint8_t zeile);
void ausw_delmark(uint8_t zeile);

};

const rom char menu_txt[ausw_max+1][18] = {
     {"HK2 Schaltprogr."},  //0
    "HK2 Pause",
    "HK2 Party",
    "HK2 Temp Tag",
    "HK2 Temp Nacht",
    "HK2 Betr. Art",
    "WW Solltemp",
    "WW Betr. Art",
    "WW Einmalladung",
    "ZP Betriebsart",
    "UBA MAX Leistung",
    "ASCII Code" //11
};

//https://learntutorials.net/de/c/topic/4547/initialisierung
//int array[] = { [4] = 29, [5] = 31, [17] = 101, [18] = 103, [19] = 107, [20] = 109

Nun möchte ich das Array wie in learntutorials.net beschrieben initialisieren.
Dabei bekomme ich aber immer eine Syntax Error Meldung. Weiß jemand wie ich das bewerkstelligen kann? Folgende Zeilen gehen nicht:

const rom char menu_txt[ausw_max+1][18] = {
     {[0]="HK2 Schaltprogr."},  //0
     {[1] []="HK2 Pause"}
     };

ich benutze den Compiler C18



pic18

Ich konnte das Feld leider nicht so initialisieren wie ich es wollte. Jetzt muss ich darauf achten, dass typedef enum test{..} und menu_txt[] zusammenpassen. Ansonsten funktioniert das Programm. Damit der Pic während der Menüauswahl noch die eigentliche Abläufe abarbeiten kann, werde ich das ganze im Hauptprogramm als Schleife (Automaten) immer wieder aufrufen. Um die einzelnen Schritte aufzuteilen werde ich evtl. noch eine zweite Ebene programmieren.

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau