Probleme mit 3 Dim-Array, Speicherüberlauf

Assanur

Grünschnabel
Hallo,

für eine Berechnung bräuchte ich in meinem C Programm ein 3 dimensionales Array der Größe float, wenn ich dieses Initialisiere stürzt mir das Programm allerdings an dieser Stelle ab, es wird beim debuggen allerdings kein Fehler angezeigt.

Code:
float Y_Bahn[30000][150][100]; //Array für berechnung, Y_[Bahn[k][j][i] mit k=positionsindex, j[punktindex] und i [X-index]

die Errormeldung die kommt lautet: Unbehandelte Ausnahme bei 0x00414d07 in simuspotv23.exe: 0xC00000FD: Stack overflow.

Visual C 2005 öffnet dazu die Check Stack routine chkstk.asm und verweist auf
Code:
; Find next lower page and probe
cs20:
        sub     eax, _PAGESIZE_         ; decrease by PAGESIZE
        test    dword ptr [eax],eax     ; probe page.
        jmp     short cs10

die Zeile >> test dword ptr [eax],eax ; probe page.

Selbst wenn ich das Array wesentlich kleiner mache also z.B. array[1000][100][100] erhalte ich diesen Fehler. erst in einem Bereich von [10][10][10] läuft es Fehlerfrei, allerdings brauche ich für die Berechnungen die oben genannte Arraygröße von [30000][150][100].

schönen gruß Assanur
 
Hallo Assanur,

Speicher in dieser Größenordnung kannst du nicht mehr auf dem Stack anlegen, sondern musst ihn mit malloc() auf dem Heap reservieren.

Gruß
MCoder
 
Zurück