[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: