Zweidimensionales char-Array



  • Guten Tag!
    In C++ ist es ja mit std::string möglich, mehrere Zeichenketten in eine Variable zutun. Geht das auch mit einem zweidimensionales char-Array?

    In C++ geht ja:

    std::string Dinge = {"Tulpe", "Speber", "Tukan", "Senftorte"};
    

    Wie würde das in C aussehen?
    Ich dachte mir folgendes, was aber nicht durch den gcc will:

    char Dinge[][] = {"Tulpe", "Speber", "Tukan", "Senftorte"};
    

    Da bekomme ich Ärger:

    error: array type has incomplete element type
    

    Vielleicht weiß ja einer von euch weiter? 🙂
    Umbruch



  • Habe gerade gemerkt, dass ich die Größe der zweiten Dimension festlegen muss.

    char Dinge[][10] = {"Tulpe", "Speber", "Tukan", "Senftorte"};
    

    Finde das aber ziemlich unflexibel, wenn ich mal einen Wert nachträglich einbauen will. Weiß da jemand weiter?



  • Speicher auf dem Heap anfordern, so wie man es in C++ auch machen würde... Nur nicht wie in C++ sondern mit malloc()/free().



  • char *Dinge[] = {"Tulpe", "Speber", "Tukan", "Senftorte"};
    size_t anzahl = sizeof Dinge/sizeof*Dinge;
    while( anzahl-- )
      puts(Dinge[anzahl]);
    

Anmelden zum Antworten