1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Riesiges array in c++

Discussion in 'Programmieren' started by Sandy Bridge, Feb 23, 2011.

Thread Status:
Not open for further replies.
  1. Hallo!

    Ich hab ein problem:
    Ich hab ein programm (es geht um fakultätsberechnung) geschrieben, in dem ich ein möglichst großes Array brauche.
    Hab extra dafür 16GB RAM (selbstverständlich 64bit OS) :D

    Das array ist über eine Klasse im Heap.
    Das problem ist nur das Array kann max. Ca. 80000000 integer variable beinhalten, danach bekomme ich die fehlermeldung, das arry darf die größe 0x7FFFFF nicht überschreiten?

    Kann man das irgentwie ändern?

    Kenn mich da nicht so aus also wenn ja bitte möglichst genau erklären. ;)

    Lg
     
  2. Hascheff

    Hascheff Moderator

    Was soll denn in dem Array festgehalten werden? Doch nicht etwa nur eine Fakultätszahl? Mir ist schon klar, dass Fakultäten sehr groß werden können, aber soo groß doch nicht.
    Oder musst du verschiedene Zahlen als Zwischenergebnis speichern, beispielsweise bei der Berechnung eines Binomialkoeffizienten?
     
  3. kazhar

    kazhar Viertel Gigabyte

    erstellst du auch wirklich ein 64bit programm? welchen compiler verwendest du?
     
  4. Doch mAnche fakultäten schon :D

    Als compiler verwende ich visual c++
    Wie kann ich das auf ein 64bit programm einstellen?

    LG
     
  5. Hascheff

    Hascheff Moderator

    Welches ist denn die größte Fakultät, die das Programm darstellen muss?
     
  6. So 100 Millionen! Wären super...
    Und wenns nen Tag dauert, auch egal ;)
     
  7. Hascheff

    Hascheff Moderator

    Wozu brauchst du so was?

    Das sind zwischen 10^10000000 und 10^100000000 Stellen, also circa 2^300000000 = 300MBit = 35MB.
    80000000 Integer-Variablen müssten reichen.
     
  8. kazhar

    kazhar Viertel Gigabyte

    wobei da ohnehin auch etwas anderes schief läuft.
    selbst ein 32bit programm kann auf 2 gb ram zugreifen. da sollten sich schon deutlich mehr als die eher lächerlichen 80 millionen integers ausgehen.

    ich denke es liegt an
    eventuell gibt es da eine beschränkung in vc wie groß eine klasse sein darf?

    ein test per gcc/cpp liefert jedenfalls auch im 32bit fall arrays bis 421000000 integers (~1,5 gb)
     
  9. magiceye04

    magiceye04 Wandelndes Forum

    Was, die Fakultät von 100Mio??
    Selbst 7stellige Zahlen dauern für gewöhnlich bereits Stunden. :o
     
  10. salim_aliya

    salim_aliya Halbes Megabyte

    Darf ich mal ein Blick in den Quellcode werfen?
     
Thread Status:
Not open for further replies.

Share This Page