[C/C++] Strukturen - Werte aus for-Schleife "erben"

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Affje800, 24. August 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 24. August 2010
    Strukturen - Werte aus for-Schleife "erben"

    Hallo,

    ich weiss jetzt nicht, wie ich den Titel nennen sollte. Also folgendes, ich habe mal wieder etwas mit C++ rumgespielt (bin definitiv Anfänger ) und habe eine kleine Schleife gebastelt. Der Code sieht jetzt so aus:




    Die for-Schleife funktioniert einwandfrei und die Werte werden auch dementsprechend gespeichert. Doch wenn ich NACH der Schleife die Werte anzeigen lassen will, weiss er nicht so Recht, was ich will. Ich denke, die Werte der Schleife werden nicht in den folgenden Code oder so übernommen.
    Ich hatte noch eine kleine Abfrage eingebaut, das "Cout << Spieler[0].Name << endl;" wurde mit folgendem ersetzt:

    Aber auch hier weiss er nicht so recht, was ich von ihm will und es erscheint "Expected primary-expression before '[' token.", d.h. ihm ist also Spieler unbekannt.

    An was liegt das und wo ist mein Denkfehler?

    MfG
     
  2. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    strukturen sind keine variablen

    Code:
    Spieler spieler[Anzahl];
    
    for (int i = 0; i < Anzahl; i++)
    {
     cout << "Name des " << ( i + 1 ) << ". Spielers: ";
     cin >> spieler[i].Name;
     cout << "Alter des " << ( i + 1 ) << ". Spielers: ";
     cin >> spieler[i].Alter;
    }
     
  3. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    Danke dir, meistens ist die vermeintlich schwere Lösung dann halt eben doch eine klitzekleine Sache

    ~Close~
     
  4. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    Alles was du deklarierst und Speicher beschlagnahmt kann als Variable gedeutet werden. Der Fehler hier ist schlichtergreifend einfach nur ein Outer-Scope Fehler.

    Beispiel:
    Code:
    int a = 1;
    
    {
     int b = 2;
    }
    
    cout << a << b << endl;
    Das würde fehlschlagen, weil b nur innerhalb des eigenen Scopes existiert und seine Existenz danach wieder aufhört.

    Ein häufiger Fehler ist auch folgender:

    Code:
    int container[32];
    
    for(int i=0; i<32; i++)
    {
     container[i] = (i+1)*(i+1);
    }
    
    container[i] = 0;
    Die Variable i existiert hier nur im Scope der For-Schleife und ist danach nicht mehr verwendbar.

    Grüße.
     
  5. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    er verwendet aber eine struktur als variable (bzw. als array) ohne vorherige deklaration.

    es ist klar das eine struktur speicher belegt, aber man verwendet die dann doch nicht als variable, man wendet diese strukturen doch an um variablen zu erzeugen mit selber speicherbelegung.

    kurz: sein code
    Code:
    struct Foo { int bar; };
    Foo.bar = 1;
     
  6. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    Also meintest Du es doch so, wie ich dachte, dass Du es so meinst.

    Wo er eine Variable definiert, ist irrelevant sofern es legal ist und Sinn ergibt. Sein Problem war wie gesagt
    der Scope.

    Eine Struktur ist nur ein eigendefinierter Typ. Wenn du willst könnte ich auch einen Integer in seine Bytebestandteile legen. Sobald du eine Variable von der Struktur Foo anlegst hast du ein Objekt das Speicher benötigt (-> Variable), dabei spielt der Typ keine Rolle. Man sagt, meine Variable ist vom Typ xyz.
     
  7. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    er legt aber keine variable vom typ Foo an, sondern verwendet die struktur selbst als variable ^^

    Code:
    Spieler Spieler[i];
     
  8. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    Okay. Es tut mir leid ich habe Tomaten vor den Augen.
    Hatte garnicht bemerkt das er die Definition als Deklarationsnamen verwendet. Mein Fehler ;-)
     
  9. 24. August 2010
    AW: Strukturen - Werte aus for-Schleife "erben"

    passiert. muss aber zugeben, du hast mich grad ein wenig ausm konzept gebracht ^^

    ich mach mal wieder dicht
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.