(Этот вопрос касается только логических адресов)
Я экспериментировал с некоторым кодом, где распечатывал адреса различных типов / областей действия переменных, чтобы лучше визуализировать изображение процесса.
Моя путаница возникла, когда я распечатал адреса нескольких переменных, которые были выделены в куче malloc, а затем также из любопытства напечатал адрес функции printf.
Я обнаружил, что printf хранитсяс гораздо более высоким адресом (т.е. ближе к стеку) в куче, чем мои переменные, выделенные malloc.Это не имеет смысла для меня, потому что я предполагал, что библиотечные функции будут загружены в кучу первым делом во время выполнения перед выполнением любых других инструкций.Я даже помещал оператор printf перед любыми операторами malloc, на случай, если библиотечные функции загружались «на лету» по мере необходимости, но это ничего не меняло.
Спасибо.