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 assignmentFalls 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).