GROßES mehrdimensionales array läßt sich nicht definieren
-
Hallöchen :xmas1:
mein Problem: error C2078: too many initializers
Ich möchte einige sehr große mehrdimensionale Arrays für einen schnelleren Programmablauf vorberechnen. Die werden als 'hardcode' direkt in den Programmcode kopiert. Zum Erstellen der Arrays habe ich mir ein kleines Konsolenprogramm geschrieben, welches mir die Arrays in Textdateien generiert.
Beispiel:
char tile[20][39][37]={ // X,Y,file 0, // Zeile 1 0, // Zeile 2 "3f1130fcc30bd5ad8a697095794f80cc.bin", "da91a7dafaacaa77c36c69c0810780d3.bin", ... // Zeile 5 bis 779 0}; // Zeile 780Der Index von 20 * 39 Feldern ergibt 780 Felder. Mein generiertes Array ist exakt 780 Zeilen groß. In jedem dieser Felder ist entweder Null oder ein 36 Zeichen langer String.
Mach ich irgendwo einen Denkfehler oder kommt der Compiler mit solch großen Arrays nicht klar?

-
gast271208 schrieb:
error C2078: too many initializers
Beispiel:
char tile[20][39][37]={ // X,Y,file 0, // Zeile 1 0, // Zeile 2 "3f1130fcc30bd5ad8a697095794f80cc.bin", "da91a7dafaacaa77c36c69c0810780d3.bin", ... // Zeile 5 bis 779 0}; // Zeile 780Der Index von 20 * 39 Feldern ergibt 780 Felder. Mein generiertes Array ist exakt 780 Zeilen groß. In jedem dieser Felder ist entweder Null oder ein 36 Zeichen langer String.
Probier mal das:
const char* tile[20][39]= { // X,Y,file 0, // Zeile 1 0, // Zeile 2 "3f1130fcc30bd5ad8a697095794f80cc.bin", "da91a7dafaacaa77c36c69c0810780d3.bin", ... , // Zeile 5 bis 779 0 }; // Zeile [cpp also ein zweidimensionales Array aus Zeigern auf const char! :xmas1:
-
Sorry!
const char* tile[260][3]= {...:xmas1:

-
Habe es mit ...
const char *tile[20][39];probiert und es funktioniert perfekt. danke! Das ist sicher sogar etwas speichersparender als wenn ich für jeden String fest 37 chars Platz reserviere.
Nochmals danke für die schnelle Hilfe! echt super

-
gast271208 schrieb:
Das ist sicher sogar etwas speichersparender als wenn ich für jeden String fest 37 chars Platz reserviere.
Sogar noch etwas speicherparender, weil die String-Literale direkt gelesen und nicht in das Array kopiert werden.
