wenn ich mit new ein Feld (Größe ~3600) Einträge (a 32 Byte) beantrage geht das beim ersten mal gut. Später brauche ich ein zweites Feld(~7100 Einträge a 32 Byte). Compile, Link, Build alles kein Problem. Bei der Ausführung bricht er jedoch, genau bei der Speicherreservierung ab. Der Aufruf-Stack ist von new über malloc bis in die KERNEL vorgedrungen und dann geht nix mehr.
"Unhandled Exception in ... (KERNEL32.DLL) 0x0000005 Access Violation"
int i = 3600;
Point* t;
t = new Point[i];
...
i = 7100;
Point* g;
g = new Point[i]; // hier passierts
Speicher hab ich noch genug (mit GlobalMemoryStatus getestet)
kann mir jemand helfen? Welche gründe kann eine Access Violation haben?
Danke fürs lesen,
Dreamforger
Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge
Ich habe mein Problem zwar noch nicht lösen können, weis aber in der Zwischenzeit wenigstens wo warscheinlich der Wurm war.
In den Feldern sind zeilenweise linearisierte Felder abgespeichert, in denen ich mittels Interpolation aus Stützwerten Ebenen mache.
Ich habe bloß ca 5% des nicht veralgemeinerbaren Randverhaltens übersehen. (Das wiederum habe ich mit Massenhaft assert( )'s rausgefunden)
Offensichtlich habe ich, nachdem meine Lin-fkt das Feld verlassen hat, irgendwelche wichtigen Daten zerschossen.
Jetzt brauch ich erstmal 'ne Mütze Schlaf! (01:40). G'nacht
Dreamforger
P.S ich habe immer zwischen DEBUG und RELEASE modus rumgeschaltet und bin wohl im letzteren hängen geblieben...