Ich verwende VS 2010
Wenn ich dieses Programm im Debug-Modus ausführen wirft es Stack-Überlauf Ausnahme und zeigt eine Bruchlinie in der Datei chkstk.asm in Zeile 99.
Aber Wenn ich es im Release-Modus starte, ist es in Ordnung.
Auch wenn ich die Größe eines der Arrays auf 10000 verringern, funktioniert es gut in Debug. Was ist der Grund?Stack-Überlauf Ausnahme in dem dummen Programm
#include <iostream>
using namespace std;
int main()
{
char w[1000001], temp[1000001];
cout<<"Why?"<<endl;
return 0;
}
Welche Optimierungen haben Sie im Freigabemodus aktiviert? Es besteht eine gute Chance, dass der Compiler nur die Arrays entfernt. –
möglich Duplikat [Stack-Überlauf, wenn aber nicht in Release Debuggen] (http://stackoverflow.com/questions/5670904/stack-overflow-when-debugging-but-not-in-release) –
Sind Sie fragen: „Was ist der Grund für den Überlauf? " Oder "Was ist der Grund, dass sich das Verhalten in verschiedenen Build-Modi ändert?" Oder etwas anderes? –