Problem mit 2d Char Array
-
Hallo
Ich benutze Visual C++ Express Edidtion 2008.
Ich schreibe ein Programm zur bearbeitung von Text dateien. Es lässt sich wunderbar kompilieren, dann flakert das Fenster kurz auf, daraufhin kommt diese Fehlermeldung:Unbehandelte Ausnahme bei 0x004116c7 in Fenster.exe: 0xC00000FD: Stack overflow.Wie es scheint liegt es an dieser Zeile:
char line[1000][500];Wenn ich das ganze mit DevC++ laufen lasse funktioniert es ohne Probleme. Anscheinend kommt Visual C++ nicht mit 2d (char) arrays aus oder liegt der Fehler doch bei mir, kann mir jemand helfen?
mfg
-
Zu große Datenpakete lassen sich nicht auf dem Stack ablegen (deshalb auch "Stack overflow"). Da musst du den Speicher wohl dynamisch allokieren.
Und zur Info: Doch, VC++ 2008 kommt sehr wohl mit 2D-Arrays aus, der Stack ist eben nur begrenzt
-
okay, danke für die schnelle antwort, bin totaler anfänger in sachen c++ (und kann auch keine andere sprache wirklich gut).
Aber ich glaube es klappt jetzt...
-
in diesem fall noch der hinweis: brauchst du tatsächlich immer soviel speicher?
schonmal überlegt, auf std::string umzusteigen?
-
1. nein, brauch ich nicht, hab das ein bisschen grosszügig eingeschätzt und war mir nicht über die konsequenzen im klaren
2. hab mir das mit string schon überlegt, bin aber zum schluss gekommen das char arrays in diesem fall praktischer sind...
-
der hinweis kam nur, weil oft leute hier auftauchen, die gar nicht wissen, dass sie std::string als alternative zur verfügung haben.
aber andererseits könntest du uns auch verraten, warum du auf diese weise vorgehst, denn eventuell hat hier auch jemand einen vorschlag, das grundsätzlich zu verbessern

-
ursprünglich dachte ich, es ginge einfacher mit char arrays, Satzteile die zwischen bestimmten zeichen stehen, auszulesen und in extra dafür angelegte variablen zu speichern. Die Arrays verursachen aber im moment mehr probleme, als das sie lösen, deshalb steige ich evtl doch auf strings um, gibt ja auch da gute möglichkeiten für mein Vorhaben.
Zum Hintergrund:
Ihr kennt vielleicht das in Java programmierte Game "EnigmaSand4-Beta 1" (http://www.fallingsandgame.com/viewtopic.php?t=696). Ich will ein Programm schreiben, mit dessen hilfe man die Mod.xml file einfach verändern kann... Ursprünlgich hab ich mit Konsolenprogrammierung gemacht, das hat eigentlich geklappt, war einfach nicht schön anzusehen und mühsam zu bedienen, jetzt will ich das ganze mit WinApi realisieren... Und da ich ziemlicher Anfänger bin dürft ich euch auf weitere Fragen von mir freuen