а касаемо винды - под стек выделяется просто мегабайт памяти и работают указатели типа ebp/esp(32) и rbp/rsp(64) бита. правда не все компили юзают rbp, мелкомягкий например смещения rsp использует, так что раскатать стек без метаданных которые ложатся в .pdata секцию какбы не реально. но если дополнительными костылями считать - то в полне реально. таки дела.
Если он не будет расти к низу как ты поймешь что стек переполнен ? Никто тебе не мешает выделить заранее места сколько нужно. Надо 2 гигабайта ? Выделяй 2 гигабайта. Непонятно только что ты будешь с ними делать... Никому это не мешает. Польза есть. Обратная совместимость тоже. Где проблемы ? Не видать
Не ну если тебе понадобится 2 гигабайта пространства для того чтобы замутить рекурсию - то есть мнение что у тебя что-то не так с алгоритмом. Это как-то слишком странно
Где я сказал, что он не растет к низу? Я сказал, что меня не устраивает само описание. Рост к низу. А вот заполнение, это меня устраивает. Ещё раз. Представь гандон. Налил ты туда литр. Он наполнился на литр. Налил два. Он увеличил вмещаемый объем на 2 литра. Налил 10. Он лопнул...потому, что есть придел. Правильно? Так работает стек?
у первой страницы стоит защита, и когда доберешься - будет экзепшен. дальше честно говоря хз что происходит, но система перехватывает управление и вместе с контекстом передаёт управление на KiUserExceptionDispatcher, которая исполняется ДО всяких VEH и SEH обработчиков. таки дела.
Нет. Есть у тебя коробка или обойма. Количество литров объема или посадочных мест под патроны в ней уменьшается. Когда уменьшается до нуля - это значит что ничего больше туда не запихнуть. И вот ты складываешь туда дворды по одному. Тот что запихнул последним - вынимаешь первым что очевидно. В архитектуре наших дней можно еще посмотреть что там внутри коробки под определенным номером и заменить если надо чем-то другим. Но суть не меняется. Это просто структура данных. Она нужна главным образом для того чтобы вызывать какие-то функции, возвращать результаты е.т.ц. но это далеко не единственный способ сие делать и можно все замутить и без стека в его классической форме. Ты можешь сделать свой собственный стек с блекджеком и шлюхами но он просто будет медленнее работать ибо не поддерживается аппаратно... Но вообще проблем с этим обычно нет. Я не видел такой задачи, которая имела бы проблемы с реализацией стека в том виде в каком он есть. Все работает - все ок.
Почему тогда решение "игры в пятнашки", требует эвристических алгоритмов? Я не говорю, о 15 числах сейчас. Я говорю, о решении n чисел. Ладно, спасибо, за содержательные ответы. Пойду поиграю в python и поковыряю чё такое ДРАКОН.
Хрень все это. Условия задачи поставлено не корректно. Как можно умножить 220 Вольт на поллтира? Да еще потом что-то вычесть? Какая уж тут смекалка, тут сплошной травматизм.