Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Вопрос к гуру


Автор: oper54 19.12.2006, 17:27
Доброе время суток...
Вот не дает мне покоя такой вопрос: указатель - это адресс + смещение(размер данных)?
Если это так то сколько в этих 4-х байтах(указатель) отводится под адресс и сколько под смещение.
Если это не так то как компилятор знает где закончится область данных адресуемая указателем?

П.с.Вопрос может и нубовский, никогда над этим просто не задумывался, вот хочу пробел убрать....

Автор: Romikgy 19.12.2006, 17:33
Я не гуру, но 

Цитата(oper54 @  19.12.2006,  16:27 Найти цитируемый пост)
указатель - это адресс

без смещения
и указатель зависит от компилятора (размер его)

Автор: witex 19.12.2006, 17:33
Знает есесно! Ты же должен указать на что ты ссыаешься вначале!

Автор: Earnest 19.12.2006, 17:35
Указатель - это просто адрес или просто смещение или просто номер ячейки памяти, в зависимости от точки зрения.
Это если ты не про DOS. Под DOS - старшие 2 байта = номер сегмента (64K), младшие - смещение в сегменте.
Цитата(oper54 @  19.12.2006,  18:27 Найти цитируемый пост)
Если это не так то как компилятор знает где закончится область данных адресуемая указателем?

Никак компилятор это не знает, потому что ему это не надо. 
Знает это run-time код, который занимается выделением памяти, т.к. он хранит размеры для выделенных кусков, а реализация зависит от компилятора.

Автор: oper54 19.12.2006, 17:58
Всем большое спасибо, вопрос исчерпан, теперь все ясно....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)