Ошибка array out of range

 

Уважаемые знатоки, пожалуйста, помогите с устранением ошибки. Временами появляется следующая ошибка. 

15122016EA EURJPY,H1: array out of range in '15122016EA.mq4' (494,13)



      {
 490      for(int i=0;i<ArraySize(result);i++) text+=CharToString(result[i]);
 491    
 492      convertResult(text,row);
 493      drawSignals(row);
 494      if(row[ArraySize(row)-1].signal=="long") signal=OP_BUY;
 495      if(row[ArraySize(row)-1].signal=="short") signal=OP_SELL;
      }
  
   return(signal);
 
Когда row пустой, будет ошибка.
 
проверяйте размер массива перед обращением
 
Izzatilla Ikramov:

Уважаемые знатоки, пожалуйста, помогите с устранением ошибки. Временами появляется следующая ошибка. 

15122016EA EURJPY,H1: array out of range in '15122016EA.mq4' (494,13)



      {
 490      for(int i=0;i<ArraySize(result);i++) text+=CharToString(result[i]);
 491    
 492      convertResult(text,row);

 493      drawSignals(row);

          // можно так попробовать, но тут нужно смотреть по логике, чего конкретно вы хотите добиться в итоге

          if(ArraySize(row) > 0)

          {

 494         if(row[ArraySize(row)-1].signal=="long") signal=OP_BUY;

 495         if(row[ArraySize(row)-1].signal=="short") signal=OP_SELL;

          }

      }
  
   return(signal);
 

Спасибо Дмитрий. Спасибо всем.

Теперь все работает без проблем.

 
Yuriy Kuzmin:

Пожалуйста, помогите с устранением данной ошибки, за ранее спасибо.

Stochastics__1 EURAUD,H1: array out of range in 'Stochastics.mq4' (336,11)

Нужно видеть, как объявлен массив _blocks_. В приведенном куске кода этого нет. Скорее всего, у него нулевой размер.

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