Максимальный размер массива

 
1.Скажите пожалуйста, каким может быть максимальный размер массива? Что-то об этом на форуме кажется было, но найти не могу.
2.Заодно и второй вопрос. Пытаюсь придумать, как динамически менять оба размера двумерного массива. Пока две мысли:
- Писать всё на Си :)
- Работать с одномерным массивом, реальный индекс при этом должен быть функцией двух "виртуальных". В связи с этим вспоминается реализованное для таймсерий перенаправление доступа (типа совместить бы одномерный массив с двумерным). Правильно ли я понимаю, что для пользовательских массивов это невозможно?
3.Ну и если кто уже пытался динамически менять два измерения: может ещё какие варианты возможны?
 
Дополнение: Поманьячив конструкцию типа
     res = ArrayResize(a,const+i);
     Print(res); 


мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом. Терминал же, если не вставить return при отрицательном res, просто исчезает.

 
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.
 
Спасибо.
И ещё момент: когда при превышении размера в 50 331 650 элементов у ArrayResize возникали проблемы, она возвращала -1, а не 0, как формально должно быть по описанию. Хотя возможно это говорит о том, что проблемы были совсем уж нештатными.
 
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.


может можно как-нибудь сделать "нарезание" массивов 2-ого, и более измерения?
мой вопрос тут "MQL4: Размерность массивов 2-ого,3-ого и 4-ого измерения?"
 
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.


Ne sovsem ponial, mogno oboyti eto ograni4enie:
1. prosto 64-bit processorom (32-bit OS)?
ili
2. 64-bit processor + 64-bit OS?

(te dostato4no li prosto 64-bit processora? ili OS dolgna toge bity 64?)

Ili nugna 64-bit versiya MT? Esli da, to planiruetsia li takovaya?
 
diam0nd, толку от 64-битного процессора никакого, если стоит 32-битная ОС. Так как за всю адресацию отвечает ОС и программы не знают, что процессор 64-битнй. Отсюда делай выводы.
Да и сам МТ тоже должен быть 64-битным, чтобы использовать всю "мощь" 64-битной ОС.
Причина обращения: