Groesse eines double Arrays
-
Hallo zusammen
Ich versuche gerade ein Programm zu schreiben welches mir bei meinen Berechnungen helfen soll. Dazu benötige ich ein Array welches folgende Form
besitzt:
double Werte[365][15000][5][5]
die Werte 365, 15000 sollen flexibel sein, der Rest ist fix. (variablen)Mein Problem: das Programm bricht einfach ab. erst wennn ich die drei Nullen von 15000 lösche startet er. Die Zahl ist zu klein. Sollt sogar ncoh groeßer sein.
Was kann ich tun? DANKE
zur indo: ich arbeite mit Dev-C++ und bin gerade beim erlernen.
-
Du könntest immer nur einen kleinen Teil der Daten behandeln. Notfalls in ne Datei auslagern.
-
ist dieses Array also zu groß? kann das sein?
-
Vor etwa zwei Stunden gabs genau die gleiche Frage; Antwort:
include <vector>
std::vector< std::vector<double> > matrix;
oder mit
double* vec = new double (variable_zahl)...
-
Wozu brauchst du eigentlich solche Mengen an Speicher?
8 Byte * 365 * 15000 * 5 * 5 = 1080000000 Byte -> 1029.96 MBGanz klar wird das der Stack nicht mehr packen.
Gast221212 hat es ja schon gesagt, lege es auf den Heap ab.
-
das brauch ich für meine berechnung.
in diesen array hätte ich dann die wichtigsten zahlen für meine berechnung abgebildet. ich kann das array nicht kleiner machen da sonst zu viel an information verloren gehen würden.
wenn ich richtig verstanden habe, soll ich es in eine datei speichern, oder?
-
der heap wird sich freun
-
Das Betriebssytem wird sich freuen, dich zu kicken, wenn ChrissiBs Rechnung stimmt. Selbst bei nem gigabyte Arbeitsspeicher wirste das net so ohne weiteres auf den heap auslagern können...
Ich würde, wenn möglich, nur Teile behandeln, oder aber, wenn das nicht möglich ist, in eine binärdatei einlesen und darin rechnen, immer nur den Teil laden, der _wirklich_ gebraucht wird. Sowas wie selbstständig swappen...
-
was ist der heap???
-
rabs79 schrieb:
was ist der heap???
Schaue entweder in deinem favourisierten C++ Buch nach oder schau dir den Eintrag in Wikipedia an: http://de.wikipedia.org/wiki/Heap_(Speicher)
-
Bist du denn sicher, das das komplette Feld belegt ist, oder werden nur Teile daraus belegt?