Максимальное число элементов массива

 

Возникли проблемы при работе с массивами. Нигде в справке и на форуме немогу нарыть про этот вопрос.

Задаю обычное описание

bool a[100000000];

Если задать уже на 1 элемент больше, то выдает ошибка на этапе компиляции:

too large array

решил его обхитрить и сделать ресайз

int v = ArrayResize(a, 100000009);
прошло все нормально. хотя при выполнении терминал реально "подвис" на пару секунд и начал бурную деятельность с винчестером


тогда сделал в два раза больше

int v = ArrayResize(a, 200000000);
в терминале выдало ошибку:

ERR_SOME_ARRAY_ERROR 4053 Ошибка массива

и соответсвенно ничего не изменилось


Как я понимаю это ограничение накладывается и на n-мерные массивы (на общее количество элементов)


Использовать метод научного тыка нет времени. Может кто сталкивался с этим вопросом или разработчики объяснят пределы допустимого?


P.S. Что самое интересное в настройках терминала максимальное число баров в истории и в окне задается в 200000000 без каких либо предупреждений!! А как же тогда обращаться к этим элементам??????

 

Ограничения самые естественные:

1. Произведение всех размерностей не может превышать максимального положительного целого 32-битного числа со знаком, т.е. 2147483647

2. Размер памяти под массив не может быть больше 2-х гигабайтов.

3. Сколько сможет отвести памяти ваша операционная система.

 

ок. спасибо. Прийдется тогда думать как-то по другому.


Напишите эти ограничения в F1. А то пол дня может пропасть бес толку.

 
stringo:

Ограничения самые естественные:

1. Произведение всех размерностей не может превышать максимального положительного целого 32-битного числа со знаком, т.е. 2147483647

2. Размер памяти под массив не может быть больше 2-х гигабайтов.

3. Сколько сможет отвести памяти ваша операционная система.

1. Неверно, т.к. произведение всех размерностей не может превысить 1000000, а не 2^32/2

2. Возможно, не проверял в силу первого ограничения

3. Много

 
прямо как бейсик на zx-spectrum.нелепые ограничения для нужного языка.меня это тоже тормознуло.пришлось мудрить с памятью.
 
dem1305:
прямо как бейсик на zx-spectrum.нелепые ограничения для нужного языка.меня это тоже тормознуло.пришлось мудрить с памятью.
Объявите массив динамическим, а потом ресайзите его на нужную величину - результат не заставит себя ждать. :)
 
sergeev:

P.S. Что самое интересное в настройках терминала максимальное число баров в истории и в окне задается в 200000000 без каких либо предупреждений!! А как же тогда обращаться к этим элементам??????

Массив - окно. Дополнительной переменной задавать смещение окна - массива.
Причина обращения: