Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

29.11.2013, 12:02. Просмотров 3287. Ответов 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 миллиардов интов ...
Есть идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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++):

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1572864 bytes) - PHP
Доброго времени суток уважаемые участники форума. Не так давно взялся за тех. поддержку сайта клиента, проблема в том, что на серваке...

Allowed memory size of 134217728 bytes exhausted (tried to allocate 46704001 bytes) - Web-серверы
Вот такая проблема возникает при загрузке изображения, проблему устранил, но таким путём, которые мне не очень нравится. Суть такая,...

Как обойти ограничение на размер передаваемых пакетов в сети? - C#
Собственно есть 2 приложения - клиент и сервер. Клиент отправляет текст произвольный длины на сервер, но сервер принимает только 1460...

Как можно обойти ограничение API VK? - PHP
Здравствуйте! Пишу автоответчик сообщении на ВК, но есть ограничения на ВК (метод - messenge.send) Вопрос: можно ли обойти данное...

Можно ли обойти ограничение PDO на использование вложенных транзакций - PHP
Уже спрашивал в базах данных, но похоже разделом ошибся. Спрошу здесь. Есть ли в Yii какой-нибудь костыль позволяющий обойти ограничение...

Двумерный массив <array>. const int value = array.size(); value не константа? - C++
#include &lt;array&gt; #include &lt;iostream&gt; using std::array; using std::cout; /*ФУНКЦИЯ ЗАПОЛНЕНИЯ МАССИВА ЗНАЧЕНИЯМИ*/ template...

28
newbie666
Заблокирован
29.11.2013, 14:08  [ТС] #16
Цитата Сообщение от Ryuk Посмотреть сообщение
newbie666, супер-игру создаешь?
систему искусственного разума с управляемыми ей подмодулями распознавания/ синтеза речи, компьютерного зрения и тд и тп
0
Kuzia domovenok
2127 / 1957 / 196
Регистрация: 25.03.2012
Сообщений: 6,808
Записей в блоге: 1
29.11.2013, 14:11 #17
Компилируешь в режиме x86 или х64? Имхо, пока не запустил в рантайме, все равно, сколько у тебя оперативки!
И да, лучше оптимизируй свой тупой алгоритм. Какую бы задачу он ни решал, очень мало оправданий требовать себе столько памяти!
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.11.2013, 14:13 #18
newbie666, что молчишь? Если как в 13 посте сделать, компилируется?
1
newbie666
Заблокирован
29.11.2013, 14:26  [ТС] #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-х битовый ))) Тоесть компилятор вручную заданное число приводил к инту и охреневал, что я очень большое число влепил)))))

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


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

Добавлено через 6 минут
*P.S. даже если ставлю число с которым память выделяется нормально, но при этом после этого создаю еще такой же массив, то то же исключение
//размер ОЗУ позволяет
0
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 01:24 #21
Цитата Сообщение от Croessmah Посмотреть сообщение
delete
не, у меня сейчас 32Гб ОЗУ, свободно больше 20, тестовый массив выделяет 1.5Гб, но не больше...
0
alsav22
5436 / 4831 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.04.2014, 03:19 #22
Проект какой, 64-х битный?
1
Kuzia domovenok
2127 / 1957 / 196
Регистрация: 25.03.2012
Сообщений: 6,808
Записей в блоге: 1
16.04.2014, 10:15 #23
Цитата Сообщение от togemura Посмотреть сообщение
//размер ОЗУ позволяет
это уже не тебе решать, позволяет или нет.
Цитата Сообщение от togemura Посмотреть сообщение
компилируется, но exception bad allocation.... как быть?
не выделять столько. Нет оправдания выделению массивов такого размера. Нет в природе алгоритмов для ПК которые требуют именно такие большие массивы.
0
togemura
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 9
16.04.2014, 10:57 #24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это уже не тебе решать, позволяет или нет.
а вот и нет) ограничение в 2147483647 обошел, теперь теоретически возможный размер вектора 4611686018427387903

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


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

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

http://www.nanonewsnet.ru/news/2013/...neironnoi-seti
0
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 483
Завершенные тесты: 1
16.04.2014, 12:12 #27
Kuzia domovenok, можно построить дерево всех возможных комбинаций шахмат.
0
newbie666
Заблокирован
17.04.2014, 20:17  [ТС] #28
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
давай, расскажи нам про ИИ
если ты не в курсе, то не ровняй все по своему уровню IQ.
Есть системы рендера типа Unlimited Detail, есть системы глобального разума, включающие в себя распознавание речи, компьютерного зрения, сопутствующие этому всякие text mining-и и пр ... которые требуют терабайтов ОЗУ и кластеров на основе GPU... Так что неуч, не знаешь - не сбивай людей с пути.
0
Kuzia domovenok
2127 / 1957 / 196
Регистрация: 25.03.2012
Сообщений: 6,808
Записей в блоге: 1
18.04.2014, 11:17 #29
togemura, а какое отношение к ИИ имеют нейросети?

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

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


Добавлено через 45 секунд
Цитата Сообщение от newbie666 Посмотреть сообщение
распознавание речи, компьютерного зрения,
при чём тут ИИ? распознавание образов подчиняется вполне детерминированным алгоритмам.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 11:17
Привет! Вот еще темы с ответами:

Invalid allocation size 4294967295 bytes - C++
Здравствуйте! Пытаюсь реализовать алгоритм обхода Грэхема. При запуске приложения появляется критическая ошибка: Invalid allocation size...

Ошибка - invalid allocation size: 4294967292 bytes - C++
Выполняю лабораторную работу №6 в методичке (прикрепил ее в посте), там программа - Многопроцессная обработка данных. Саму программу можно...

Allowed memory size of 67108864 bytes exhausted - PHP
Здравствуйте! move_uploaded_file($_FILES, $uploadfile); //------------------------------------------ list($width, $height) =...

Как обойти ограничение на длину элемента строкового массива? - Visual Basic
Подскажите, пожалуйста, как можно обойти ограничение на длину элементов строкового массива, чтобы в него можно было записать строку длиной...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

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