Объявление массива на языке MQL4 - не получается задать количество элементов, передавая значение переменной (и даже константы).

 

Почему-то, при объявлении массива следующим образом: 

 int size = 10;
 bool mass[size];

Появляется ошибка: '[' - invalid index value

Хотя, на C++ этот код нормально компилируется и работает.

Возможно ли на Mql4 количество элементов задать из переменной? Или всегда нужно использовать только числа? 

 
Alexander Nikolaev:

Почему-то, при объявлении массива следующим образом: 

Появляется ошибка: '[' - invalid index value

Хотя, на C++ этот код нормально компилируется и работает.

Возможно ли на Mql4 количество элементов задать из переменной? Или всегда нужно использовать только числа? 

используй mass[] и ArrayResize(mass,size) и да пребудет с тобой сила, Люк !

 
Alexander Nikolaev:
int size=10;
bool mass[];
//---
ArrayResize(mass,size);
 
Maxim Kuznetsov:
Одновременно отправили посты
 
Alexander Nikolaev:

Почему-то, при объявлении массива следующим образом: 

Появляется ошибка: '[' - invalid index value

Хотя, на C++ этот код нормально компилируется и работает.

Возможно ли на Mql4 количество элементов задать из переменной? Или всегда нужно использовать только числа? 

Когда-то обходил это ограничение через такую конструкцию:
#define ODD 5
double Max_D1[ODD];
double Low_D1[ODD];
Работало.
 

Спасибо за ответы. 

Заодно, хотелось бы узнать, есть ли в MQL4 списки и контейнеры, такие как std::list и std::vector в C++? Или это нужно самим реализовывать? Программирую давно уже, но не находил ещё такого.

 
Alexander Nikolaev:

Спасибо за ответы. 

Заодно, хотелось бы узнать, есть ли в MQL4 списки и контейнеры, такие как std::list и std::vector в C++? Или это нужно самим реализовывать? Программирую давно уже, но не находил ещё такого.

string abc[5]={"a","b","c","d","e"};

int num[5]={1,2,3,4,5};

 
bool mass[10];//как вариант, если подойдет
 
Alexander Nikolaev:

Спасибо за ответы. 

Заодно, хотелось бы узнать, есть ли в MQL4 списки и контейнеры, такие как std::list и std::vector в C++? Или это нужно самим реализовывать? Программирую давно уже, но не находил ещё такого.

аналога STL нет. MT заточен на работу с массивами (таймсериями), что естественно - старайтесь реализовывать свои алгоритмы на них.

то есть свой аналог std::list std::map можно наваять но это не из области прикладного программирования..

 
Alexander Nikolaev:

Спасибо за ответы. 

Заодно, хотелось бы узнать, есть ли в MQL4 списки и контейнеры, такие как std::list и std::vector в C++? Или это нужно самим реализовывать? Программирую давно уже, но не находил ещё такого.

Вот что есть
 
BlackTomcat:
Когда-то обходил это ограничение через такую конструкцию:
Работало.
+1. Похоже, только #define. Спецификатор const перед переменной тоже не проходит. Или через ArrayResize().
Причина обращения: