Struct lässt sich keine Werte zuweisen
-
masterofx32 schrieb:
...Na klar, in beiden Fällen funktioniert es einwandfrei...
stimmt ja; was habe ich denn da gestern compiliert? bei mir ist es nämlich abgebrochen (s.o.). Oh man, ich glaube ich habe zu viel vor der Kiste gesessen
sry
-
Der Restliche Quelltext hat aber irgendwie gar nix mit der Klasse Map zu tun, ich wüsst jetzt nicht was ich euch noch geben sollte, vielleicht die MAIN. Vielleicht hat der DEV C++ von Bloodshed irgendwo nen Bug ?
-
Tom555 schrieb:
Der Restliche Quelltext hat aber irgendwie gar nix mit der Klasse Map zu tun, ich wüsst jetzt nicht was ich euch noch geben sollte, vielleicht die MAIN. Vielleicht hat der DEV C++ von Bloodshed irgendwo nen Bug ?
Sinnvoll wäre es, eine vollständige Version des Codes zu sehen, der den Fehler (tilecode=0) hervorbringt.
-
Tom555 schrieb:
Map *MainMap = new Map("main.map",textures_sur,32,32,800,480,1);
Schreibe dir doch schnell einen Getter, um sofort nach Anlegen map_data[0][0].tilecode von MainMap auszugeben.
Dann siehst du, daß beim Konstruktor alles in Ordnung ist. Außerdem guck dir doch mal im Debug an, wann sich map_data[0][0].tilecode von 5 auf 0 ändert; dann hast du doch die Ursache lokalisiert?!?
-
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).