Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » arr der dimension 2000 x 2000 net möglich?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.10.2006, 23:58 Uhr
~iioooo
Gast


Hallo,
ich versuche vergeblich ein statisches array der grösse 2000 x 2000 zu erstellen.
ich versuche das so:

double arr[2000][2000] = {{0.0}};

laut meinen berechnungen müsste es doch in meinen speicher passen der 512 MB hat.
Verstehe ich nicht. Kann mir jemand helfen?

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.10.2006, 00:20 Uhr
Blubber2063



Wie wäre es mal mit ner Fehlermeldung, deine Initialisierung sieht komisch aus, aber gib mal die Fehlermeldung an.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.10.2006, 01:08 Uhr
0xdeadbeef
Gott
(Operator)


Wahrscheinlich verträgt der Stack das nicht, manche Betriebssysteme *hust windows hust* haben da eine Begrenzung. Ansonsten kann das bei multigethreadeten Programmen Probleme bereiten, weil die mehrere Stacks in den stackspace quetschen müssen, das kommt aber bis zu einem gewissen Grad auf die Implementierung seitens des Betriebssystems oder der betreffenden virtuellen Maschine an - wenn ein Java-Programm den Code per JNI benutzen soll zum Beispiel. Generell empfiehlt es sich deshalb, große Buffer auf dem Heap anzulegen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.10.2006, 09:59 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von 0xdeadbeef:
Wahrscheinlich verträgt der Stack das nicht, manche Betriebssysteme *hust windows hust* haben da eine Begrenzung.

Unsinn das Array da ist gerade mal 30 MB groß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.10.2006, 23:31 Uhr
~ddddd
Gast


kann es sein dass der stack in der grössenordndung von ca. 1MB ist? Würde auch dem von 0xdeadbeef entsprechen....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
31.10.2006, 01:22 Uhr
~derMond
Gast


Hallo,
ich bin unsicher bei folgendem code ob der richtig ein 2-d array alloziiert. Müste nicht beim zweiten calloc die Zeile statt:


C++:
double **array = NULL;
     if((array = (double **)calloc(SIZE * sizeof(double *), SIZE * sizeof(double *))) == NULL)
         return EXIT_FAILURE;
     for(i = 0; i < SIZE; i++)
     {
         if((array[i] = (double *)calloc(SIZE * sizeof(double), SIZE * sizeof(double))) == NULL)
             return EXIT_FAILURE;
     }



so heißen


C++:
if((array[i] = (double *)calloc(SIZE * sizeof(double), sizeof(double))) == NULL)



bin sehr dankbar warum dem nicht so ist wenn ich falsch liege...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
31.10.2006, 02:07 Uhr
0xdeadbeef
Gott
(Operator)


Eigentlich muss das

C++:
calloc(SIZE, sizeof(double))


heißen. Das alloziiert SIZE Elemente der Größe sizeof(double) und initialisiert sie mit 0.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: