Vai tas ir normāli ka šāds koda gabals nokrešo, kad d ir ap 4700?
Code: Select all
#include <iostream>
void dfs(int d)
{
if (d < 5000)
dfs(d+1);
};
int main()
{
dfs(0);
return 0;
};
Code: Select all
#include <iostream>
void dfs(int d)
{
if (d < 5000)
dfs(d+1);
};
int main()
{
dfs(0);
return 0;
};
Praktiski visiem kompilatoriem (ieskaitot Visual Studio) stack'a izmēru var mainīt, iespējams tas ir šis gadījums (daudz mazāks par 1MB?).bubu wrote:Lai overflows notiku uz 4700 iterācijām, tad katram steka freimam būtu jābūt 1MB/4700 = ~220 baiti. Kas pat debug modē ir diezgan liela vērtība šādai dfs funkcijai.