Variablen mit fehlerhafter Untervariablenvertauschung



  • Hallo,

    ich habe eine Variablenstruktur erstellt(*.h-Datei):

    struct Col
    {
        int Know[9];
        int Max;
        int Nr;
    };
    
    struct Row
    {
        Col col[9];
    };
    
    struct Feld
    {
        Row row[9];
    };
    

    Nun definiere ich eine Variable im allgemeinen main.cpp Bereich:

    Feld feld1;
    

    Hier befindet sich nun das Fehlverhalten:

    int j,jj=3,row2=4,col2=1;
    for(j=jj; j<=9; j++)
    {
       feld1.row[row2].col[col2].Know[j] = [b]9[/b];
    }
    //.Max=[b]9[/b]
    feld1.row[row2].col[col2].Max -= 1;
    //.Max=8
    

    Egal welchen Wert die Variable feld1.row[row2].col[col2].Max hat,
    beträgt er vor dem Subtrahieren immer 9 und danach 8.

    Ich habe andere Zahlen für ".Know[j]" eingegeben und diese hat ".Max" gleich mit übernommen?!

    Was mache ich hier falsch?
    Da ich neu in C++ bin und davor mit VB6 gearbeitet habe,
    kenne ich bestimmt nicht alle Regeln,
    die beachtet werden sollten.

    Vielen Dank fürs Aufklären 😉
    Jörg



  • ich verstehe die struktur nicht so recht...

    struct Col //spalte
    {
        int Know[9];
        int Max;
        int Nr;
    };
    
    struct Row //reihe
    {
        Col col[9];
    };
    
    struct Feld //feld
    {
        Row row[9];
    };
    

    Ein Feld hat also 9 reihen die jeweils 9 spalten haben? Oo
    Entweder, du hast nur die Namen unglücklich gewählt oder aber ich versteh hier iwas falsch...

    struct cell
    {
    int value;
    static int max;
    size_t Nr;
    };
    struct row
    {
    cell Cell[9];
    };
    struct feld
    {
    row Row[9];
    };
    

    vll lieg ich ja richtig?

    bb



  • Verpasse deinen Strukturen Konstruktoren, in denen die Membervariablen initialisiert werden, sonst steht dort immer irgendwas drin.



  • Konstruktoren also ...

    Naja die sind mir leider noch fremd.

    Könnte wer vielleicht ein kurzes Beispiel zu meinem Code machen?
    Das wär zumindest eine sehr gute Hilfe 😉

    Danke
    Jörg



  • Hier mal ein, bewußt etwas einfacher gehaltenes, Beispiel für einen Konstruktor der struct Col.

    struct Col
    {
        int Know[9];
        int Max;
        int Nr;
        Col() : Max(0), Nr(0)
        {
            for( int i=0; i<9; ++i)
                Know[i] = 0;
        }
    };
    

    Siehe auch
    http://tutorial.schornboeck.net/konstruktor.htm



  • Vielen Dank Braunstein 😉

    Gruß
    Jörg


Anmelden zum Antworten