Я читаю «Принципы и практики программирования с помощью C++» Б.Строуступа, и я стараюсь выполнять большинство упражнений. Это очень интересно, и я не знаю, с чего начать.Упражнение для макета памяти C++
Упражнение:
Рассмотрим расположение в 17,4. Напишите программу, в которой указывается порядок, в котором статическое хранилище, стек и свободное хранилище выложены в памяти. В каком направлении растет стек: вверх к более высоким адресам или вниз к нижним адресам?
Компоновка в 17,4:
код - память для кода
Статические данные - пространство для глобальных переменных
Свободный магазин - доступная память
Stack - памяти для вызова функции и пространство для их аргументов и локальных переменных
Как я могу узнать, в каком порядке это все происходит? Еще лучше, как я мог на самом деле вывести порядок в том, что происходит в тот момент, когда это происходит?
Разве это не должно быть обработано компилятором или, может быть, я просто неправильно понял упражнение? Немного советов было бы действительно круто!
Благодаря
Распечатайте указатели на вещи, которые существуют в каждом из этих сегментов. Хотя это предполагает, что значения указателя фактически соответствуют местам физической памяти ... –
Пожалуйста, будьте более конкретными в своем вопросе. Если вы можете сузить вопрос до одного вопроса, это было бы здорово. Например, что такое «оно» в «Не должно ли оно обрабатываться компилятором»? – ryanyuyu
Да, я имею в виду всю эту память, предоставляющую разные части программы (глобальные переменные, стек, свободный магазин). Все, что я знаю, это то, что компилятор делает это для нас, но, как я понимаю, мне нужно каким-то образом сделать программу, которая показывает, в каком порядке компилятор делает то, что он делает – etrusks