2009-08-20 6 views
0

Bis jetzt dachte ich, dass eine Main Panic 42 nur auftritt, wenn ich versuche, auf Daten zugreifen, die zum Beispiel außerhalb der Grenzen eines Arrays ist. Dank ein paar netten Rückmeldungen von euch konnte ich mir ein anderes Problem lösen. Allerdings geschieht jetzt, was ist, dass ich diese Panik bekommen, wenn sie versuchen eine char-Array zuweisen alsHaupt Panik 42 beim Zuweisen dynamischer Array

folgt
unsigned char *buf = new unsigned char[5000]; 

jemand eine Idee, was happenend haben könnte? Es funktioniert gut einmal, aber das zweite Mal, wenn das Programm über diese Linie kommt, stürzt es ab. Gibt es eine gute Strategie, um diesen Fehler zu beheben?

Danke noch einmal!

+0

das zweite Mal? ist diese Codezeile innerhalb einer Schleife? Können Sie Ihrem Post mehr Quellcode hinzufügen? 10 Zeilen vor, 10 Zeilen nach ... –

+0

Side-Problem: Sie sollten neue (ELeave) statt neue verwenden. –

Antwort

0

Heap-Korruption ist ein wahrscheinlicher Grund für USER 42 Panics. Zum Beispiel über die Grenzen anderer zugewiesener Zellen schreiben oder einen veralteten Zeiger auf bereits freigegebenen Speicher verwenden.

Beginnen Sie zuerst mit den Schreibvorgängen von allocs/frees/memory, die vor diesem panic point aufgetreten sind. Normalerweise müssen Sie nicht sehr weit zurück gehen, um die Korruption zu finden.

Verwandte Themen