char buffer[999999][4][30]
-
Hallo Leute,
ich möchte ca 999999 Zeilen aus einer Textdatei in den Speucher einlesen.
Ich möchte auch gleichzeitig bei einem Leerzeichen einen neuen Datensatz erkennen.. Daher: buffer[zeile][datensatz][zeichen]Jetzt stürzt aber das Programm ab wenn ich char buffer[999999][4][30]; mache.
SCheint wohl etwas viel zu sein.Jetzt hab ich mal probiert char *buffer = new char[999999] zu machen. Das funktioniert.
Aber: char *buffer = new char[999999][4][30] funktioniert wieder nicht.Wie würde es funktionieren? Steh glaub ich grad aufm Schlauch ...
THX
-
C++ FAQ -> dynamische mehrdimensionale Arrays
-
Na char buffer[9999999] ist ja auch viel kleiner als char buffer [9999999][4][30] Also ich glaube, soviel kannst du eh nicht aufeinmal verwalten! Schreib dir ne klasse, die immer ein Stück ausliest, bearbeitet und wieder verwirft.
-
@Mastah: Wo bitte ist das dynamisch?
-
ness schrieb:
Na char buffer[9999999] ist ja auch viel kleiner als char buffer [9999999][4][30].
Das war ja hoffentlich nicht ernst gemeint.
Jockel
-
Ach sorry,
ich hatte irgendwie ein "nicht viel kleiner gelesen".Jockel
-
@ness: Wo bitte ist das nicht dynamisch?
-
Hi,
Speicherallozierung via new und delete ist automatisch dynamisch im Gegensatz zu statischen Arrays.
= new bla[x][y] geht schon Mal gar nicht, es gibt nur new[] und delete[], nichts mehrdimensionales.Für nähere Infos lesen Sie Ihren FaQ-Beitrag oder fragen Sie ihren Troll oder Zeitverschweder.
MfG Eisflamme
-
Mis2com schrieb:
Für nähere Infos lesen Sie Ihren FaQ-Beitrag oder fragen Sie ihren Troll oder Zeitverschweder.
-
ness schrieb:
@Mastah: Wo bitte ist das dynamisch?
Lies den FAQ-Beitrag!
-
Mein Vorschlag dazu wäre:
#include <string> #include <vector> //... std::vector<std::vector<std::string> > datensaetze;
-
OK, hab gelesen! Meine Aussage bezog sich darauf, das nicht mal:
int[x][y]
geht!