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

Понимание адреса, ссылки и указателя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Теория про new http://www.cyberforum.ru/cpp-beginners/thread591164.html
Помогите пожалуйста понять как работает new. При перегрузке требуется, чтобы у функции был параметр size_t, причем нельзя присваивать ему default значение. Объясните, что является таким параметром в...
C++ Компилятор ругается на static переменные Есть класс: class Node{ public: Node(void) : data(0), next(0), prev(0), first(0), last(0), size(0){} Node(const _My& Val){ data = new _My(Val); size++; } ~Node(void){} _My* data; http://www.cyberforum.ru/cpp-beginners/thread591160.html
Определить, какой элемент двумерного динамического массива больше: расположен в левом верхнем или в верхнем правом углу C++
Определить а) какой элемент двумерного массива больше: расположен в левом верхнем или в верхнем правом углу; б) какой элемент двумерного массива меньше: расположенный в нижнем правом или в...
C++ Сортировка Хоара
помогите правильно вставить счетчик шагов. Насколько я понял, функция сама себя перезапускает, тоесть надо в тело функции кидать, но так получается 100+ шагов, многовато ... #include <iostream>...
C++ Удалить из стека последний элемент http://www.cyberforum.ru/cpp-beginners/thread591144.html
Информационное поле стека числовое. Удалить из стека последний елемент. Добавлено через 48 минут Вот есть стек, но он меняет местами. #include<iostream> #include<conio.h> using namespace...
C++ Два треугольника заданы координатами своих вершин. Вычислить их площади Два треугольника заданы координатами своих вершин. Вычислить их площади по формуле S=1/2((Х2-Х1)(Y3-Y1)-(X3-X1)(Y2-Y1)) и определить, какой из них имеет большую площадь. подробнее

Показать сообщение отдельно
The_Immortal
1552 / 488 / 8
Регистрация: 04.04.2009
Сообщений: 1,891
31.05.2012, 11:35  [ТС]
Toshkarik,

Цитата Сообщение от Deviaphan Посмотреть сообщение
В зависимости от параметров компиляции, может быть изменено не только выравнивание, но и порядок переменных.
Цитата Сообщение от Toshkarik Посмотреть сообщение
зависит от реализации компилятора, и что переменные не обязаны идти в каком то порядке и вообще находится радом.
Да, ребят, это я понял.
Также в книге об этом написано:

Стандарт C++ не требует от компилятора последовательного "беспросветного" размещения переменных в памяти. Dev-C++ может разместить переменные в памяти и по-другому.
Но мой Dev-C++ их разместил аналогичным образом:

C++
1
2
3
4
5
--- = 2293620
&n  = 2293616
&l  = 2293612
&f  = 2293608
&d  = 2293600
Я не пытаюсь с вами спорить и утверждать, что на всех Dev-C++ всегда будет такое "беспросветное" размещение переменных.
Просто хочу понять каким образом (в данном локальном случае) действует компилятор. Почему объявление переменных происходит сверху-вниз, а размещение этих переменных снизу вверх?

Разве при объявлении переменной не происходит моментального размещения этой переменной в памяти ну и соответствующего присвоения адреса?

Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
Потому, что локальные переменные заводятся в стеке.
Отлично... В книге почему-то об этом не пишут =/

Пойду гуглить по этому поводу
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru