Вопросы к Поиску с Алисой
Стек в программировании — это область памяти, в которую записываются переменные и информация, создающиеся в результате вызова любых функций. javarush.com Когда функция заканчивает работу, вся информация о её вызове и её переменные удаляются из стека автоматически. javarush.com
Переполнение стека (stack overflow) происходит, когда в стек помещается слишком много данных для памяти, выделенной текущему потоку. stackoverflow.com Например, если вызывать функцию, которая рекурсивно вызывает саму себя без завершения, это вызовет переполнение стека, поскольку каждый вызов функции создаёт новый фрейм стека, и стек в конечном итоге будет потреблять больше памяти, чем для него зарезервировано. stackoverflow.com
Переполнение буфера (buffer overflow) возникает, когда в буфер пытаются записать больше данных, чем предусмотрено размером этого массива. javarush.com Обычно происходит из-за неправильной работы с данными, полученными извне, и памятью, при отсутствии жёсткой защиты со стороны подсистемы программирования (компилятор или интерпретатор) и операционной системы. ru.wikipedia.org