11.09.2014 13:25, Dmitrii Kashin пишет: > > > Вот так это примерно происходит: > ---------------------------------------- > void > march (Grid1D grid) > { > <...> > Grid1D newgrid = make_step(grid, tau); > march(newgrid); > }; > ---------------------------------------- > > Никак не пойму, что ж с ней не так-то: функция была вызвана, отработала, > вернула результат. Значит кадр в стеке ей вроде бы уже не нужен. Но он > остаётся. Почему? Извините, код не смотрел, но из того что вижу поясню: Вы из функции march вызываете еще одну march, таким образом не освобождая стек вызовов. Cтек освободится при вызове неявного return в конце ф-ции. В данном случае стек тратится на сохранение точки возврата из функции, но возврата не происходит. С уважением, Алексей А. |