Февральский фуршет
-
-
- dead_maroz
- 15.02.2009 6:06
- ↑
- →
Большая глубина последовательности "вложенных" вызовов подпрограмм. То есть, если подпрограмма A вызвала подпрограмму B, та в свою очередь подпрограмму C и так далее очень много раз, произойдет переполнение стека, содержащего адреса возврата в подпрограммы. Частный случай - рекурсия, когда подпрограмма вызывает сама себя.
-
-
-
- steelannelida
- 15.02.2009 6:17
- ↑
- →
Еще может происходить если передавать большую структуру данных по значению. Пример для С:
struct Big {
int array[1000000];
};
void f(struct Big al);
...
struct Big al;
f(al);
При каждом таком вызове мы пишем почти мегабайт в стек. -
-
-
- pin_dragon
- 15.02.2009 6:30
- ↑
- →
Не бывает ничего неограниченного)
И почему в таком случае при программировании под гнулинукс ошибки переполнения стека гораздо более часты, чем при аналогичной работе с вендой?))) -