020
28.02.2005, 14:06 Uhr
Tommix
|
Hallo, also bei mir geht dies hier:
C++: |
int main() { char* Buffy;
for (int i = 0; i < 100; ++i) { Buffy = new char[32800000]; delete[] Buffy; }
return 0; }
|
Da Du aber selbst schreibst:
Zitat: |
Wie gesagt habe ich in einem kleinen Testprogramm das ganze nachgestellt, konnte das Verhalten aber nicht reproduzieren.
In einem anderen Forum meinte jemand, dass könnte an den Threads liegen, die mein Programm hat (8 Stück)...
|
machst Du Dir es damit, den Fehler auf den Compiler zu schieben, IMHO ein bißchen zu einfach. Daß das Programm mit einem anderen Compiler läuft, heißt nicht, das es jetzt fehlerfrei ist. Multithreading kann schnell zu schwer verfolgbaren Fehlern führen. Dagegen ist ein vergessenes delete relativ harmlos und - da es ein reproduzierbarer Fehler ist - meines Erachtens gerade kein Heisenbug. Die von Flo vorgeschlagene Vorgehensweise funzt BTW nur mit den MFC, ist aber ansonsten sehr zu empfehlen.
Gruß, Tommix |