Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2012, 23:04   #1
DartVedro
 
Регистрация: 02.03.2012
Сообщений: 4
По умолчанию Размер ячейки памяти и указатели

Прошу прощения, осознал свою глупость.
Хотя нет, еще не до конца.

Сформулировал наконец вопрос - создаю две переменных типа short, подряд. Затем вывожу на экран адреса этих переменных, разница между этими адресами почему то 12 байт, а не 2. Почему? В учебнике (Джесс Либерти "С++ за 21 день") точно такой же код, и разница между адресами 2 бита.


Последний раз редактировалось DartVedro; 18.10.2012 в 23:35.
DartVedro вне форума Ответить с цитированием
Старый 18.10.2012, 23:46   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Переменные это не массивы это в массивах элементы хранятся последовательно Адрес_1 = Адрес_0 + Размер типа вроде так
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 19.10.2012, 00:15   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

http://en.wikipedia.org/wiki/Data_structure_alignment
waleri вне форума Ответить с цитированием
Старый 19.10.2012, 00:22   #4
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

переменные определены в статической памяти. и не факт что они будут находится в соседних ячейках.
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Старый 19.10.2012, 01:54   #5
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

DartVedro, на компьютере автора с компилятором автора была разница в два байта. Никто не гарантирует, что переменные будут идти последовательно. Вроде как современным процессорам удобнее, когда данные выровнены по 4 байта, поэтому (и далеко не только поэтому) компилятор и генерирует что-то подобное.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 19.10.2012, 22:32   #6
DartVedro
 
Регистрация: 02.03.2012
Сообщений: 4
По умолчанию

Спасибо за ответы=)
DartVedro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
адресацией памяти и указатели различных типов(с) Miles Помощь студентам 1 25.12.2011 12:26
Определить размер массива в памяти WOWka777 Общие вопросы C/C++ 12 17.02.2011 19:08
Размер памяти процесса ZaRDaK Общие вопросы Delphi 5 25.09.2010 23:48
размер памяти видеокарты в BIOS CyberGenus Компьютерное железо 6 15.03.2010 08:14
Максимальный размер занимаемой памяти Alex Cones Общие вопросы Delphi 8 06.05.2009 22:37