История изменений
Исправление red75prim, (текущая версия) :
Только не надо тут говорить что это и есть UB.
Оно самое и есть. Попытка обратиться к соседней переменной через арифметику указателей - это UB (язык не определяет поведение программы в этом случае). И именно этот факт позволяет компиляторам делать вот это:
Расположение переменных в стеке/памяти не обязано быть каким-то конкретным
Так что искать методом тыка соседние переменные в памяти - задача безнадёжная
Ну как-же. Для определенной версии определенного компилятора с определенными настройками на определенной платформе расположение будет вполне конкретным. Почему разработчики компилятора должны слушать этих графоманов из комитета по стандартизации и считать, что программист не может воспользоваться этим фактом?
Исходная версия red75prim, :
Только не надо тут говорить что это и есть UB.
Оно самое и есть. Попытка обратиться к соседней переменной через арифметику указателей - это UB (язык не определяет поведение программы в этом случае). И именно этот факт позволяет компиляторам делать вот это:
Расположение переменных в стеке/памяти не обязано быть каким-то конкретным
Так что искать методом тыка соседние переменные в памяти - задача безнадёжная
Ну как-же. Для определенной версии определенного компилятора с определенными настройками расположение будет вполне конкретным. Почему разработчики компилятора должны слушать этих графоманов из комитета по стандартизации и считать, что программист не может воспользоваться этим фактом?