Размер массива больше чем INT_MAX - страница 2

 
Aleksey Vyazmikin #:
А что в альтернативных языках программирования - C++, C#, там есть такие же ограничения?

В C++ размер массива ограничен объемом памяти. Если на стеке создавать большой массив - получите StackOverflow. На куче, можно создать хоть на 10 Гб. Но в отличии от C++, mql не имеет легального свободного доступа к памяти (кроме dll).

 
a007 #:

А сколько надо? Я использовал long в качестве индекса вместо int. И вместо квадратных скобок круглые.

Размер массива в mql5 ограничен int'ом. То, что вы делали - это нарушение типизации. При обращении производилось преобразование в int и если в logn окажется число более INT_MAX - произойдет вылет бота. В MQL5 массив - это не указатель на первый элемент в выделеной памяти.

 
Вадим Калашнков #:

Размер массива в mql5 ограничен int'ом. То, что вы делали - это нарушение типизации. При обращении производилось преобразование в int и если в logn окажется число более INT_MAX - произойдет вылет бота. В MQL5 массив - это не указатель на первый элемент в выделеной памяти.

Он намекает, что написал свой класс для хранения массива данных с превышающей INT_MAX размерностью.
Мое мнение: такой функционал в стандартной поставке MT нафиг не нужен. Это экзотическая потребность.
 
Вадим Калашнков #:

Размер массива в mql5 ограничен int'ом. То, что вы делали - это нарушение типизации. При обращении производилось преобразование в int и если в logn окажется число более INT_MAX - произойдет вылет бота. В MQL5 массив - это не указатель на первый элемент в выделеной памяти.

И вместо квадратных скобок круглые. Заметили?
 
a007 #:
И вместо квадратных скобок круглые. Заметили?

Кстати заметил не так давно, что у массивов появились методы Range и Size. То есть, можно делать:

int array[];

if (array.Size() == 0) вместо if (ArraySize(array) == 0)

 
Вадим Калашнков #:

Кстати заметил не так давно, что у массивов появились методы Range и Size. То есть, можно делать:

int array[];

if (array.Size() == 0) вместо if (ArraySize(array) == 0)

Вопрос в том, а есть ли это в последней релизной версии? В бете - да, есть.

 
Artyom Trishkin #:

Вопрос в том, а есть ли это в последней релизной версии? В бете - да, есть.

Да, есть. 

Причина обращения: