Array eleganter befüllen



  • Hoi zusammen,
    hat jemand eine Idee wie ich in C++ Arrays einfacher befüllen kann?
    Habe ein zweidimensionales Array:

    char * panelStartContent[1][10] = {"Alle Auswählen","Gruppieren","Reihenfolge","","","","","","",""};
    

    Nun möchte ich aber Element 0 in der ersten Dimension auch befüllen:

    panelStartContent[0][10] = {"Kopieren","Einfügen","Verknüpfung kopieren","Verknüpfung einfügen","Inhalte einfügen"," ","","","",""};
    

    Das geht aber nicht, compileerror. Ich müsste jetzt manuell

    panelStartContent[0][0] = "Kopieren";
    panelStartContent[0][1] = "Verknüpfung kopieren";
    

    eingeben. Das ist mir aber zu viel Aufwand.

    Hat zufällig jemand eine Idee?
    Da es sich um dutzende Einträge handelt suche ich einen Weg das ganze ein wenig zu automatisieren.

    Gruß
    J0



  • Hallo 😞

    tut mir leid, du machst da etwas ganz falsch. Scheinbar beachtest Du
    nicht, das jeder Buchstabe ein Element benötigt plus der NULL die
    jeden String terminiert, wird automatisch impliziert.

    wenn also dann ist das kürzeste so:

    char str[10][80] = {"1","2","3","4","5","6","7","8","9","0"};
    

    Und einen Pointer auf einen statischen Text zu setzten geht so nicht:

    char *p = "nun bin ich gesetzt";
    

    hier kann durch Kompilerschalter, sonnstetwas passieren.
    richtig ist da:

    char *p(0),mem[80] = p = {"Memory ist nix für Leute über 30"};
    

    Wenn du wie in deinem Beispiel Name,Hund,Katze in Mengen speichern
    möchtest, verwendest Du Klassen die solche Vorgänge verkapseln.

    Hier sei auf CString und CStringList verwiesen.
    Auch die STD Lib liefert Klassen um storage "Container" zu
    haben. Nur seltend wird man solche Dinge selber proggen.

    http://msdn.microsoft.com/de-de/library/kkh6xzcc(VS.80).aspx



  • Hmm OK, dann muss ich das nochmal überdenken. Ich komm leider aus 'ner anderen Sprache, da gibts keine Pointer und auch die Datentypenkonvertierung geht einfacher 🙂

    Danke



  • das scheint nur so das es einfacher geht, es kostet ja schließlich das 4 fache an Rechenzeit ^^ Mindestens...



  • Dann schreib es doch so!

    char * panelStartContent[2][10] = { {"Kopieren","Einfügen","Verknüpfung kopieren","Verknüpfung einfügen","Inhalte einfügen"," ","","","",""},
    									{"Alle Auswählen","Gruppieren","Reihenfolge","","","","","","",""} };
    

    PantaRhei



  • Danke, genau das habe ich gesucht 🙂 Zu simpel 😉
    Dankesehr


Anmelden zum Antworten