marikk пишет:Являются ли эти выражения синонимами ?
нет конечно.
На самом деле стек — структура данных, и она в принципе не может переполнится. Однако реализован стек в x86 в виде простого массива, и максимальный размер стека ограничен. Потому стек можно переполнить.
Вот пример переполнения машинного стека:
int foo(int a)
{
return foo(a+1);
}
int main()
{
return foo(1);
}
(у меня пишет "ошибка сегментирования", по стандарту это UB).
Исчерпание стека — это когда вы засунули в стек 4 эл-та, и пытаетесь вынуть пять. Для x86го стека это тоже UB по стандарту, а в реальности ничего страшного не происходит(конечно я не гарантирую, UB оно такое), а просто выводится мусор.
PS: СТРАШНОЕ происходит ПОСЛЕ исчерпания, когда указатель стека уменьшается за пределы, и во время pop просто получается "мусор", а во время push вы в этот "мусор" что-то пишете, что приводит к краху (в лучшем случае).
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)