wir müssen im zuge unserer semiarbeit große Datenmengen (mehrere Millionen Short-Werte) während der laufzeit in c++ auslesen und irgendwo speichern - entweder in arrays (die aber anscheinend nur ca. 120000 elemente vertragen) oder in anderen datenstrukturen, z.b. einer eigenen datei. habt ihr eine idee, wie das von statten gehen könnte (vielleicht mit xml ?!)? oder gibt es keine solche möglichkeit und wir müssen die gesamte datenmenge aufteilen?
entweder in arrays (die aber anscheinend nur ca. 120000 elemente vertragen)
Wie kommst du darauf? Die einzige Begrenzung ist dein Speicher. Wenn du dein Array natürlich auf dem Stack anlegst passt da nicht soviel rein weil der Stack begrenzt ist. Wenn du dir aber den Speicher dynamisch zur Laufzeit holst und dein Array som it auf den Heap legst hast du praktisch deinen gesammten freien virtuellen Speicher zur Verfügung.
Ob das ganze jetzt am Besten in eine Datei soll hängt doch davon ab was du willst bzw. ob du die Daten nach Programmende noch irgendwo gespeichert haben willst. XML ist dabei doch auch nur ein Format wie du es abspeicherst...
danke für die schnelle antwort! ich habe das array wohl auf dem stack angelegt...: "short Data[120000];". ich werd es jetzt mal dynamisch versuchen, also mit zeiger und "new". das ist doch was du meintest, oder? xml ist wohl doch ungeeignet, weil ich ja schnell und möglichst mit indizes auf die daten zugreifen will. ein array ist da halt doch das beste...
danke für die schnelle antwort! ich habe das array wohl auf dem stack angelegt...: "short Data[120000];". ich werd es jetzt mal dynamisch versuchen, also mit zeiger und "new". das ist doch was du meintest, oder?
die speicher-grenze liegt bei windows xp 32bit pro Prozess bei 2GB, d.h du hast fast 2GB Heap zur Verfügung für deine anwendung. Der Stack ist im Normalfall stark limitiert und liegt normal glaub ich so bei einigen MB oder so. -- class God : public ChuckNorris { };