Hi all,

ich schreibe gerade schon seit mehreren Tagen an einem Tool aber heute bin ich soweit, dass ich auf ein Fehler stoße, den ich einfach nicht verstehe. Vielleicht ist meine Birne auch zu matschig, nach 5 Stunden Coding am Stück und ich sehs einfach nicht...

Situation ist folgende: In der CPP File ist eine list für Pointer definiert. Der Pointer wird lokal angelegt und zeigt auf einen mit "new" reservierten Speicherbereich. Ein Pushen des Pointers führt zu folgendem Fehler:

Code:
HEAP[PEfileEditing.exe]: HEAP: Free Heap block 5828f8 modified at 582934 after it was freed
oder
Code:
Critical error detected c0000374
Die Exception tritt in der _heap_alloc Funktion von malloc.c auf.

Nun zum Code:
Code:
list<sImportDll*> ImportDlls;   // Def. list + Iterator
list<sImportDll*>::iterator IDit;

// ....

BYTE* ImportTableTemp1 = new BYTE[ImportTableSize];   // Def. des Pointers
sImportDll* ImportTableTemp = (sImportDll*)ImportTableTemp1;

// ....

ImportDlls.push_back(ImportTableTemp);    // Crash
Das Seltsame daran ist, dass ich eine zweite Pointer-list habe, dass mit dem selben Vorgehen einwandfrei funktioniert.

Kennt jemand das Problem oder sogar eine Lösung?

MfG Nephron

---------- Post added at 17:24 ---------- Previous post was at 15:36 ----------

EDIT: Ich habe zwar das Problem immer nochnicht wirklich erkannt, aber habe die Sache jetzt anders gelöst (ist auch eleganter so ). Vermutlich waren das viele Speicherreservieren, Kopieren und Verschieben zu viel und irgendwo der Wurm drin.

Wer dennoch eine Antwort hat, es würde mich interessieren!

MfG