Kompilierungsfehler bei SDL-Tutorial
-
Hallo, über die deutsche SDL Seite bin ich auf die imo interessanten Beispiele von Olofson gestoßen. Ich wollte ein wenig mit den Parallax-Codes experimentieren, bekomme aber nicht mal seinen Original-Code kompiliert.
Der Compiler gibt folgende Fehlermeldung:
error: initializer string for array of chars is too long
und verweist auf folgende Stelle: (Auszug)
#define MAP_W 16 #define MAP_H 16 typedef char map_data_t[MAP_H][MAP_W]; map_data_t foreground_map = { /* 0123456789ABCDEF */ "3333333333333333", "3 2 3 3", "3 222 3 222 3", "3333 22 22 3", "3 222 3", "3 222 2 2 333", "3 2 2 222 3", "3 222 223", "3 333 3", "3 22 23 323 23", "3 22 32 333 23", "3 333", "3 3 22 33 3", "3 222 2 3 3", "3 3 3 3 3", "3333333333333333" }; // <------HIERAUF ZEIGT DER FEHLERhttp://olofson.net/examples.html
Wie kriegt man diese Initialisierung hin? Unter Windows (*hust*) kann man ja die Binarys starten und die imo guten Ergebnisse bewundern.
-
Da Strings nullterminiert sind, braucht jeder ein Zeichen mehr als tatsaechlich zur Verfuegung steht.
Du kannst versuchen, "MAP_W" einfach um 1 zu erhoehen was aber evtl Auswirkungen auf den restlichen Code haben wird.
-
Thx, klappt. Aber ich kann nicht verstehen, daß jemand solchen Code ungetestet ins Netz stellt. Und warum stoße immer ich auf solch groben Unfug?

-
XHansWurstX schrieb:
Thx, klappt. Aber ich kann nicht verstehen, daß jemand solchen Code ungetestet ins Netz stellt. Und warum stoße immer ich auf solch groben Unfug?

Vielleicht weil unterschiedliche Compiler, den C++-Standard unterschiedlich interpretieren. Oder Anders gesagt: Vielleicht klappts auf dem einen Compiler, aber auf dem anderen nicht.