От чего зависит размер указателя в C++ на различных платформах?


В соответствии со стандартом C++, размер указателя зависит от конкретной реализации компилятора и не связан напрямую с разрядностью используемой платформы. В рамках же конкретной реализации стандарта, размер указателей различных типов (указатели на объекты, указатели на функции и т.п.) также может быть различным.

Однако на большинстве современных ОС общего назначения (настольные UNIX совместимые системы, MS Windows) используются модели данных, в которых размер указателя соответствует разрядности адресной шины у архитектуры этих платформ. Ширина шины адреса определяет объём адресуемой памяти. Например, если ширина адресной шины составляет 32 бит, и размер слова памяти равен одному байту (минимальный адресуемый объём данных), то объём памяти, который можно адресовать, составляет 2^32 байт, что и определяет оптимальный размер указателя для такой платформы.

Библиографический список



Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;



Найденные ошибки

Проверено проектов
361
Собрано ошибок
13 417

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;