Странная ошибка Array out of range - страница 2

 

В Вашем алгоритме сначала вычисления, а уже после - модификация переменной цикла. 

 
Алексей Тарабанов #:

Нет, всё совсем не так. 

И вас не смутило, что Сергей тоже ничего такого не увидел?) Чем доказывать миру, что он не прав, вот возьми и вставь код к себе в скрипт и запусти, только объяви массив глобально. И о чудо, цикл вдруг внезапно работает

 
Sergey Gridnev #:
Вы трезвый?

Он точно пьяный)

 
Вы, вроде, за помощью обратились. Я её оказал. А как-бы программисты перекинулись на обсуждение, не пьян ли я. Учите матчасть, господа "программисты", иначе так неучами и останетесь. 
 
Denis Glaz:

Ситуация следующая: объявляю статичный массив и при попытке записать туда данные вылетает ошибка out of range. Объявление массива динамически с выделением памяти ( ArrayResize) не помогает. Код вот:

Не воспроизводится (b1355).

void OnStart()
{
  tv_ma_15(PERIOD_CURRENT); // https://www.mql5.com/ru/forum/404399
}
 
fxsaber #:

Не воспроизводится (b1355).

Гопники. 

 
fxsaber #:

Не воспроизводится (b1355).

и не должно, тут не будет видно эффекта если там функция только возвращает значение и вы с этим ничего не делаете. А ошибка выскакивает? 

 
Denis Glaz #:

ошибка выскакивает? 

Нет. Предоставьте данные для воспроизведения.

 

выход за пределы потому что размерность массива =0. (идет игнор установки размерности)

Но если закоментить строку

double HMA = NormalizeDouble(iMAOnArray(rhma, 0, 3, 0, MODE_LWMA, 0), Digits);

то размерность становится =3 и ошибка исчезает. 

Получается ему не нравится  iMAOnArray.

Почему так происходит - хз...

 
Nikolay Ivanov #:

выход за пределы потому что размерность массива =0. (идет игнор установки размерности)

Но если закоментить строку

то размерность становится =3 и ошибка исчезает. 

Получается ему не нравится  iMAOnArray.

Почему так происходит - хз...

она исчезает, потому что это единственное место, где идет попытка записи данных в массив. Если вы там вместо нее напишите строчку rhma[0] = 1; то тоже будет ошибка