używam VS 2010.
Kiedy uruchomić ten program w trybie debugowania rzuca stosu wyjątku przepełnienia i przedstawia linię rozdziału w chkstk.asm pliku w linii 99.
Ale kiedy uruchomię go w trybie Release, jest OK.
Również, jeśli zmniejszam rozmiar jednej z tablic do 10000, działa to dobrze w debugowaniu. Jaki jest powód?przepełnienie stosu wyjątku w programie głupie
#include <iostream>
using namespace std;
int main()
{
char w[1000001], temp[1000001];
cout<<"Why?"<<endl;
return 0;
}
Jakie optymalizacje zostały włączone w trybie zwolnienia? Istnieje duża szansa, że kompilator właśnie usuwa tablice. –
możliwy duplikat [Przekroczenia stosu podczas debugowania, ale nie w wydaniu] (http://stackoverflow.com/questions/5670904/stack-overflow-when-debugging-but-not-in-release) –
Czy pytasz "Co to jest? powód przelewu? " Lub "Jaki jest powód zmiany zachowania w różnych trybach kompilacji?" Albo coś innego? –