P
Wie sieht's denn aus?
Hatte eine heftige Woche - deswegen die späte antwort.
HEAP: Free Heap block 166378 modified at 166394 after it was freed
Unbehandelte Ausnahme bei 0x778a018c in db COPY.exe: Benutzerhaltepunkt
Du schreibst über eine Heap-Allokation drüber raus, wild auf dem Heap rum, oder benutzt einen schon delete'ten Zeiger.
Weist darauf hin, das bereits eher was passiert. Ob und wann sich der Fehler bemerkbar macht, hängt halt davion ab, was in dem Moment grad in den Registern udn auf dem Stack steht - das kann das seltsame Verhalten (mal passiert's mal nicht) recht gut erklären.
Die einfachste (aber teuerste) Lösung ist ein Tool wie BoundsChecker.
(Tip: Für GlowCode gibt's eine Eval-version: http://www.glowcode.com Könnte dir schon weiterhelfen)
Etwas mühseliger ist es, die CRT Memory Debug - Funktionen zu verwenden.
Mit _CrtSetDbgFlag kann man noch einige heap Debug flags setzen: _CRTDBG_CHECK_ALWAYS_DF checkt den gesamten Heap bei jeder Allokation, das macht das programm zwar ewig langsam, aber man kommt näher an die Ursache ran.
Eine andere Variante ist, an ausgewählten Stellen _CrtCheckMemory selbst aufzurufen, und so den Sündenbock "einzukreisen".
Behalt aber immer im Hinterkopf, daß die Ursache immer noch ein Stückchen vor der Fehlermeldung liegen kann