по тем же адресам. Пока никто не перезаписал их, так что
они здесь в нетронутом виде. Для создания такой странной ситуации несколько функций должны
исполняться друг за другом и SP должен быть одинаковым при входе в функции, т.е. у функций
должно быть равное количество аргументов). Тогда локальные переменные будут расположены
в том же месте стека. Подводя итоги, все значения в стеке (да и памяти вообще) это значения
оставшиеся от исполнения предыдущих функций. Строго говоря, они не случайны, они скорее
непредсказуемы. А как иначе? Можно было бы очищать части стека перед исполнением каждой
функции, но это слишком много лишней (и ненужной) работы.
не понял, что это доказывает?
Это UB, пойми ты Так нельзя писать
.
Одна мелочь - вызов функции может не произойти (см. inlining)
Обсуждают сегодня