L-Wert?



  • Hi!
    Hab hier ein kleines Problem in meinem Code:

    class Spielfeld
    {
    public:
    	Spielfeld();
    
    private:
    	char feld[2][10][10];	
    };
    
    // ...
    
    if (feld[0][y][x] == 'X') // funktioniert
    
    // ...
    
    feld[0][x][y] = 'X'; // funktioniert nicht
    

    Die produzierte Fehlermeldung lautet:
    error C2106: '=' : Linker Operand muss ein L-Wert sein

    Ich hoffe ihr könnt mir da weiterhelfen.



  • Ich kann dir sagen was eine L-Wert ist. Das ist ein Wert dem man etwas zuweisen kann, der also auf der LINKEN Seite einer Zuweisung stehen darf.

    Ich sehe aber keinen Grund warum das bei dir nicht der Fall sein sollte.



  • LValue steht eigentlich für Location Value



  • Location Value klingt interessant und richtig, ist aber historisch nicht korrekt.



  • Du soltest dir im Programmcode die Zeile vor dem auftreten des Fehlers
    angucken.
    da feld[0][x][y] eigentlich ein korekter L-Wert seien sollte,
    liegt die Vermutung nahe, das z. B. durch ein vergessenes Semikolon
    die Zeile vorher
    mit zum Ausdruck gehoert, an den 'X' zugewiesen wird.



  • Bashar schrieb:

    Location Value klingt interessant und richtig, ist aber historisch nicht korrekt.

    Warum ist das historisch nicht korrekt? Im C++ Primer steht auch, dass das für location value steht.


Log in to reply