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
 

Neue Beiträge

Zurück