Является ли переполнение стека частью его реализации или это только то, что ограничено ограничениями памяти / ОЗУ ОС? - PullRequest
0 голосов
/ 25 октября 2018

Когда вы слышите переполнение стека, означает ли это, что стек изначально имел емкость 1 МБ, а затем вы добавили больше элементов ... увеличили его размер, чтобы размер стека был изменен до 2 МБ ... и затем включался и до тех пор, пока он не стализменен до 10 МБ ... однако его никогда не удалось изменить до 11 МБ , потому что стек имеет максимальный размер емкости?

Или же на уровне стека нет такого ограничения,скорее ограничение приходит из приложения / программы .И это ограничение может колебаться по ряду причин.например, если у вашего iPhone недостаточно памяти, он будет использовать только 10 МБ стека, однако, если у него 1 ГБ свободной памяти, приложение сможет использовать все это пространство, следовательно, максимальная емкость стека будет близка к 1 ГБ?

Мой вопрос не похож на связанный вопрос.Это не о стеке вызовов приложения.Скорее, дело только в том, кто снесет переполненный стек?И показать, что будет частью реализации стека или как?

1 Ответ

0 голосов
/ 25 октября 2018

Исходя из комментариев, предоставленных Энди,

Если у вас есть ограничение, то оттуда вы можете выдать ошибку.Для стека нет конкретного соглашения об ограничении или выдаче ошибки.Хотя это может сделать такое.

Операционная система также может накладывать различные ограничения:

  • ограничения на виртуальную машину
  • ограничения операционной системы для отдельного приложения
...