Форум программистов, компьютерный форум CyberForum.ru

Стек и куча - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пошаговая отладка в CodeBlocks http://www.cyberforum.ru/cpp-beginners/thread792071.html
Как пошагово выполнить программу в Codeblocks по строчке, видя значения всех переменных?
C++ Найти максимальное значение функции Найти максимальное значение функции t=(((a!-b!)*x+sin2(a!*x))/(b!+2tan(a*sqrt(b)))*cos(3*x) на интервале значений аргумента X – от Xi до Xe с шагом h. http://www.cyberforum.ru/cpp-beginners/thread792067.html
C++ Программа которая меняет местами значение вещественных переменных а и в
Программа которая меняет местами значение вещественных переменных а и в. Помогите пожалуйста!!))
Пользователь вводит значение, вывести четное или нечетное оно C++
Пользователь вводит значение, вывести четное или нечетное оно.
C++ Помогите написать программу, которая округляет значение на сотые http://www.cyberforum.ru/cpp-beginners/thread792049.html
нужно написать программу которая округляет значение которое вводит пользователь на сотые. Помогите пожалуйста!!))
C++ стек и очередь Обращаюсь с просьбой помочь с задачами...Есть задача,готовая,ее нужно сделать через СТЕК и ОЧЕРЕДЬ!Пожалуйста!) Составить программу, в которой описывается структура из полей: Фамилия, Номер телефона, Год рождения. Организовать ввод двух структурных переменных, вывод каждой структуры на экран и вывести на экран фамилию человека, номер телефона введен с клавиатуры (если такого человека нет,... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.02.2013, 01:16     Стек и куча
Цитата Сообщение от fuelcs Посмотреть сообщение
то есть место где хранится адрес первого элемента стека, плюс дополнительная память где храниться смещение каждой переменной относительно адреса первой?
Не совсем. Во первых, это зависит от компилятора, как будет вестись обращение к твоеим переменным, через указатель стека (ESP), или через адрес на начало локальных данных (часто в EBP хранится), или через что-нибудь еще. Стек растет от больших адресов к меньшим. Поэтому обращение к данным от их "начала" это операция "минус", а не "плюс".
Цитата Сообщение от fuelcs Посмотреть сообщение
Для массивов есть смещение только для первого (нулевого) элемента, а с итым разбирается компилятор?
Вопрос не понял.

Добавлено через 20 секунд
Цитата Сообщение от fuelcs Посмотреть сообщение
Не могу понять как работает стек...
Ща...

Добавлено через 2 минуты
Цитата Сообщение от fuelcs Посмотреть сообщение
Не могу понять как работает стек...
Может, те все-таки книжку почитать?

Добавлено через 1 минуту
Например, в этой книге: http://www.ozon.ru/context/detail/id/2631566/ все это описано.

Добавлено через 1 минуту
Вот пример кода сгенерированного компилятором для того примера с пустым циклом:
Assembler
1
2
3
4
5
6
7
8
9
    movl    $0, -4(%rbp)
    jmp .L2
.L3:
    addl    $1, -4(%rbp)
.L2:
    cmpl    $4, -4(%rbp)
    setle   %al
    testb   %al, %al
    jne .L3
Обращение через -4(%rbp) к этой переменной.
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru