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

Как узнать максимально возможный размер массива в С++?

Александр Анишин Ученик (171), закрыт 11 лет назад
Имею в виду: есть ли в каком-либо заголовочном файле (стандартном) директива #define с указанием максимально возможного размера для статического и динамического массива?
Лучший ответ
Николай Веселуха Высший разум (367975) 11 лет назад
Есть UINT_MAX в limits.h в 4294967295 элемента. Вопрос в том, какая разрядность у операционной системы, каков размер переменной и хватит ли оперативной памяти и файла подкачки для этого массива, а также сколько адресного пространства поддерживает процессор?
Остальные ответы
Krab Bark Искусственный Интеллект (191702) 11 лет назад
Максимально - это size_t в <cstring>
Реально может быть меньше - ограничена памятью, которая выделяется программе.
P.S. Капитан, ну да - это тип, который определяется через другой целый тип по typedef, а уже возможности того типа определяют допустимый диапазон.
Источник: http://www.cplusplus.com/reference/cstring/size_t/
Капитан Гугл Искусственный Интеллект (146215) 11 лет назад
Для статического, теоретически - std::numeric_limits<int>::max() из limits или INT_MAX из climits. Практически - минус то, что занимает остальная программа и еще некоторые вещи. Но это если хватает оперативной памяти.
Для динамического - где-то так же, но скорее всего система откажется такой массив выдавать.
--
Краб, это как - максимальный размер size_t? size_t, вообще-то, тип...
Похожие вопросы