Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Каким правилам, особенностям или характеристикам подчиняется значение адреса указателя в C/C++?

ФермаКактусов Высший разум (217817), закрыт 1 месяц назад
Лучший ответ
Николай Веселуха Высший разум (382646) 1 месяц назад
Байты памяти расположены непрерывно и последовательно начиная с нуля и каждый имеет свой адрес отличный на единицу, предельное значение которого в шестнадцатеричном формате представления зависит от архитектуры системы и ограничено размером оперативной памяти, адресуемой процессором.
Moon LateГуру (3950) 1 месяц назад
Далеко не всегда адреса памяти начинаются с нуля.
И во избежание ошибок, назначением адресов занимается компилятор в соответствии с заданной картой памяти, либо рантайм-механизм динамического распределения памяти.
Николай Веселуха Высший разум (382646) Moon Late, здесь речь идёт о языках С/С++. И для людей, которые пишут на нём код установлено такое правило, которое я дал в своём ответе. Оно исключает возможность двух указателей из разных программ хранить разные адреса, которые указывают на один блок физической памяти и позволяют использовать адресную арифметику. Это концепция, и механизмы её распределения здесь ни при чём.
Остальные ответы
Алексей Мыслитель (7965) 1 месяц назад
Скорее всего, подразумевается адресная арифметика: https://pvs-studio.ru/ru/blog/terms/0005/
Moon Late Гуру (3950) 1 месяц назад
А тебе это ваще зачем? Даже если и напишу, один фик, ты ничего не поймешь
Андрей Высший разум (481803) 1 месяц назад
Указатель в C/C++ - это просто адрес ячейки оперативной памяти - точно такой же, как в ассемблере. И любые ограничения накладываются не языком, а конкретным процессором. Например, адрес слова (2 байта) должен быть чётным и т.п. Но это ограничения не языка, а конкретного железа.
Похожие вопросы