2 dimensionaler Array



  • Hallo Zusammen

    Ich will ein Spielfeld machen. Der User kann das Spielfeld selbst bestimmen.

    In der ersten Zeile sollte mit Buchstaben gekennzeichnet sein also A,B,C...
    die erste Spalte mit Zahlen 1, 2, 3... usw.

    Wie mache ich das am besten?

    Mit einem 2 dimensionalen Array?

    Ich habe es versucht mit char cFeld[x][y];

    Ich möchte das der User die Variabeln x, y eingeben kann. Ich bekomme jedoch eine Fehlermeldung das man dem Array einen Wert geben muss.

    Wie soll ich vorgehen?

    Bitte um schnelle Hilfe

    Liebe Grüsse 😃



  • für jeden datentyp und jede variable muss die größe zur compilezeit bekannt sein.

    ist sie das nicht, so muss das zeug auf dem freien speicher (heap) abgelegt werden. dort wird speicher mit dem schlüsselwort "new" reserviert.

    int *foo = new int[x]; // 1-dim array
    int **bar = new int*[x]; // 2-dim array
    for(int i = 0; i < x; ++i)
     bar[i] = new int[y];
    

    mehr c++ typisch ist aber eher sowas:

    #include <vector>
    using namespace std;
    ...
    vector< vector<int> > foo(x); // 2-dim array
    for(unsigned i = 0; i < foo.size(); ++i)
     foo[i].resize(y);
    


  • Hallo

    Danke für deine Antwort. Ich verstehe den Code leider nicht so ganz kannst du ihn mir mehr kommentieren?

    Die Bezeichnung foo, bar könnte ich ersetzen durch?

    Liebe Grüsse 😃



  • auch unwissend bin

    gibs eigentlich keinen 2D vector oder sowas in der art in der stl? 😕
    wär mal kuhl zu wissen..



  • @1310-Logik:
    Nein, wieso auch? Wenn du mehr dimensionen willst, dann verschachtel eben vector, wie thordk es gemacht hat.

    @Unwissende:
    foo und bar sind wie man sieht Bezeichner. 😉


Anmelden zum Antworten