Cześć,
mam w Visual C++ 2008 napisaną sekwencję następującego typu:
for(int i=1; i<=10; i++)
for (int j=1; j<=10; j++)
if(condition()) return true;
Kod ten znajduje się wewnątrz funkcji f() i teraz po wywołaniu f w takiej postaci jak wyżej wywala mi komunikat o przepełnieniu stosu. Jest to nieco dziwne, bo nie są tu tworzone żadne nowe zmienne, które mogłyby pozostać gdzieś w pamięci (w condition() nie ma ani jednego new, w funkcjach wywoływanych przez condition też nie). O co chodzi? Czy to jest związane z optymalizacją przeprowadzaną przez kompilator? Jak to rozwiązać? Zamiana pierwszej linijki na i<=4 sprawia, że nie dostaję takiego komunikatu.