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.935 Themen, 20.621 Beiträge
was mich irritiert ist das du eine gp fault bekommst... beim drueber nachdenken faellt mir dazu ein: vermutlich nimmst du nicht das debug build sondern eine release build zum testen. wuerde als erstes mal empfehlen ein debug build herzunehmen --- vermute das du dann bereits vor dem gp eine assertion failure bekommst (die debug variante der speicherbibliothek ist ganz gut): das sollte mehr sinnvolle hinweise auf den grund des problems geben.
ich vermute das du beim kopieren der daten den block einfach zerstoerst... aber das sollte bei der debug variante schnell rauskommen.
WM_HOPETHISHELPS
thomas woelfer