Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
newbie666
Заблокирован
#1

Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes - C++

29.11.2013, 12:02. Просмотров 2816. Ответов 28
Метки нет (Все метки)

Ну собственно Visual Studio 2012, платформа x64, при попытке создать массив из 10-и миллиардов элементов
C++
1
unsigned *test = new unsigned[10000000000];
получаю резонный error:
error C2148: total size of array must not exceed 0x7fffffff bytes
не надо спрашивать, сколько у меня оперативной памяти - достаточно. Дело в другом, я скоро буду собирать машинку под кое - что с 512-ю гигабайтами оперативки и мне хотелось бы выделять кусок выровненной памяти под 100 миллиардов интов ...
Есть идеи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 12:02     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes
Посмотрите здесь:
C++ Двумерный массив <array>. const int value = array.size(); value не константа?
Invalid allocation size 4294967295 bytes C++
C++ Ошибка - invalid allocation size: 4294967292 bytes
C++ Можно ли обойти динамический массив не зная его размер?
C++ total size of local objects too large
C++ как снять ограничение на размер статического массива
C++ Функции (find out the array in which total number of positive elements is bigger)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
29.11.2013, 14:08  [ТС]     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #16
Цитата Сообщение от Ryuk Посмотреть сообщение
newbie666, супер-игру создаешь?
систему искусственного разума с управляемыми ей подмодулями распознавания/ синтеза речи, компьютерного зрения и тд и тп
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
29.11.2013, 14:11     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #17
Компилируешь в режиме x86 или х64? Имхо, пока не запустил в рантайме, все равно, сколько у тебя оперативки!
И да, лучше оптимизируй свой тупой алгоритм. Какую бы задачу он ни решал, очень мало оправданий требовать себе столько памяти!
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.11.2013, 14:13     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #18
newbie666, что молчишь? Если как в 13 посте сделать, компилируется?
newbie666
Заблокирован
29.11.2013, 14:26  [ТС]     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #19
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Компилируешь в режиме x86 или х64?
да посмотри пост ёлки палки Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes

Цитата Сообщение от alsav22 Посмотреть сообщение
newbie666, что молчишь? Если как в 13 посте сделать, компилируется?
ААААААААА вот я баран

конечно компилируется :-)))))))))))
спасибо!!!

unsigned long long n = 10000000000;
unsigned int *test = new unsigned int[n]

если тут вручную вбить вместо n число - тогда не компильнётся, я совсем забыл, что любое целое число по умолчанию приводится к инту )))))))) а она современных ОС - он 32-х битовый ))) Тоесть компилятор вручную заданное число приводил к инту и охреневал, что я очень большое число влепил)))))

СПАСИБО ЧТО ВПРАВИЛИ МНЕ МОЗГ )))
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 00:53     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #20
Цитата Сообщение от newbie666 Посмотреть сообщение
систему искусственного разума с управляемыми ей подмодулями распознавания/ синтеза речи, компьютерного зрения и тд и тп
это была моя идея...


Цитата Сообщение от newbie666 Посмотреть сообщение
unsigned long long n = 10000000000;
unsigned int *test = new unsigned int[n]
компилируется, но exception bad allocation.... как быть?

Добавлено через 6 минут
*P.S. даже если ставлю число с которым память выделяется нормально, но при этом после этого создаю еще такой же массив, то то же исключение
//размер ОЗУ позволяет
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 01:24     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #21
Цитата Сообщение от Croessmah Посмотреть сообщение
delete
не, у меня сейчас 32Гб ОЗУ, свободно больше 20, тестовый массив выделяет 1.5Гб, но не больше...
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.04.2014, 03:19     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #22
Проект какой, 64-х битный?
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
16.04.2014, 10:15     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #23
Цитата Сообщение от togemura Посмотреть сообщение
//размер ОЗУ позволяет
это уже не тебе решать, позволяет или нет.
Цитата Сообщение от togemura Посмотреть сообщение
компилируется, но exception bad allocation.... как быть?
не выделять столько. Нет оправдания выделению массивов такого размера. Нет в природе алгоритмов для ПК которые требуют именно такие большие массивы.
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 10:57     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это уже не тебе решать, позволяет или нет.
а вот и нет) ограничение в 2147483647 обошел, теперь теоретически возможный размер вектора 4611686018427387903

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Нет в природе алгоритмов для ПК которые требуют именно такие большие массивы.
а вот и есть) в системах ИИ.


Цитата Сообщение от alsav22 Посмотреть сообщение
Проект какой, 64-х битный?
Спасибо, помогло!! ^^ в настройках проекта поставил x64 и включил поддержку больших адресов в компоновщике, размер массива передаю в long long, все заработало)
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
16.04.2014, 11:56     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #25
Цитата Сообщение от togemura Посмотреть сообщение
а вот и нет) ограничение в 2147483647 обошел, теперь теоретически возможный размер вектора 4611686018427387903
LOL мега обход. это скорее не обошёл, а изначально собирал программу с урезанной разрядностью.
Цитата Сообщение от togemura Посмотреть сообщение
а вот и есть) в системах ИИ.
давай, расскажи нам про ИИ Много ли памяти требуется для игры в шахматы среднего уровня? http://www.allgame.com/game.php?id=41038&tab=sysreqs
В 2002м году 64Мб было достаточно, включая память используемую виндой и прочими системными нуждами.
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 11:59     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #26
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а изначально собирал программу с урезанной разрядностью.
ну... да) просто с VS не очень хорошо знаком)

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Много ли памяти требуется для игры в шахматы среднего уровня?
а зачем шахматы?

http://www.nanonewsnet.ru/news/2013/...neironnoi-seti
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
16.04.2014, 12:12     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #27
Kuzia domovenok, можно построить дерево всех возможных комбинаций шахмат.
newbie666
Заблокирован
17.04.2014, 20:17  [ТС]     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #28
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
давай, расскажи нам про ИИ
если ты не в курсе, то не ровняй все по своему уровню IQ.
Есть системы рендера типа Unlimited Detail, есть системы глобального разума, включающие в себя распознавание речи, компьютерного зрения, сопутствующие этому всякие text mining-и и пр ... которые требуют терабайтов ОЗУ и кластеров на основе GPU... Так что неуч, не знаешь - не сбивай людей с пути.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 11:17     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes
Еще ссылки по теме:
C++ Создайте класс Array с двумя полями: указатель на массив целых чисел и размер массива
C++ Какой максимальный размер строки можно зашифровать?
C++ Максимальный размер массива
Размер массива(error C2057: требуется константное выражение) C++
Invalid error size C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
18.04.2014, 11:17     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes #29
togemura, а какое отношение к ИИ имеют нейросети?

Добавлено через 20 секунд
Цитата Сообщение от newbie666 Посмотреть сообщение
Есть системы рендера типа Unlimited Detail
при чём тут ИИ? ну да, крупные рендеры требуют много ОЗУ.

Добавлено через 46 секунд
Цитата Сообщение от newbie666 Посмотреть сообщение
есть системы глобального разума


Добавлено через 45 секунд
Цитата Сообщение от newbie666 Посмотреть сообщение
распознавание речи, компьютерного зрения,
при чём тут ИИ? распознавание образов подчиняется вполне детерминированным алгоритмам.
Yandex
Объявления
18.04.2014, 11:17     Можно ли обойти ограничение на максимальный размер массива ? error C2148: total size of array must not exceed 0x7fffffff bytes
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru