Struct lässt sich keine Werte zuweisen



  • Ich habs gefunden, das glaubt man ja nicht.

    if (map_data[k+start_x][i+start_y].tilecode = 0)
                   {
                      map_data[k+start_x][i+start_y].tilecode = default_part;
                   }
    

    Hatte da beim if ein = zu wenig drinn, dann hat er alles überschrieben. Müsste da ncht eigentlich eine Fehlermeldung kommen ?



  • ich glaub' es nicht! Aber das kann jedem passieren 😉

    Tom555 schrieb:

    Müsste da ncht eigentlich eine Fehlermeldung kommen ?

    wieso? bei der Selektion wird die Zuweisung betrachtet und da diese korrekt ausgeführt wird, stellt dieser Ausdruck einen wahren Wert dar *lol*



  • So ein billiger Fehler, der hat mich jetzt 2 Tage auf Trab gehalten. Nach sowas hab ich gar nicht geschaut. 😡



  • Es hätte aber eine Warnung kommen müssen.
    MinGW bringt z.Bsp.
    warning: suggest parentheses around assignment used as truth value
    oder Borland (BCB5)
    warning: possible incorrect assignment

    Falls diese Warnung bei dir abgeschaltet ist würde ich sie wieder einschalten.

    Ciao



  • Ja das hatte ich auch noch irgendwo im Hinbterkopf, das da normalerweise wenigstens ne Warning kommt. Die scheint der DEV C++ aber anscheinend zu unterdrücken. Mal schauen wo man das wieder einschaltet.

    Danke für eure Hilfe



  • freshman schrieb:

    wieso? bei der Selektion wird die Zuweisung betrachtet und da diese korrekt ausgeführt wird, stellt dieser Ausdruck einen wahren Wert dar *lol*

    Der Wahrheitswert einer Zuweisung ergibt sich nicht aus einer "korrekten Ausführung", sondern aus der Umwandlung des Zuweisungsergebnisses nach bool. In diesem Fall ist der Ausdruck in der if-Anweisung vermutlich false, weil 0 zugewiesen wird (wenn tilecode nicht einen ungewöhnlichen operator bool hat).


Anmelden zum Antworten