Re: Продавленный стек
11.09.2014 15:43, Nikolay Kachanov пишет:
> Вот так должно работать:
>
> int march (const Grid1D & grid)
> {
> ...
>
> static Grid1D newgrid;
>
> // шаг
> if (!finFlag)
> {
> printf("Making iteration %06d; Passed time: %f\n", grid.iter+1,
> grid.time);
> newgrid = make_step(grid, tau);
> return march(newgrid);
> }
> else
> return 0;
> }
>
return march(newgrid) все равно будет выедать стек, но в отличии от
первоначального варианта тут предусмотрен выход из рекурсии.
p.s. А зачем "else" перед "return 0;" ? Мелочь, конечно. Давно не
проверял, сейчас компиляторы ставят ненужные jmp в таких случаях?
С уважением, Алексей А.
Reply to: