MQL4 CArrayObj, как я могу установить резерв на 0 или полностью его избежать? - PullRequest
0 голосов
/ 03 июня 2019

MQL4 Функция-член CArrayObj At (n) возвращает ноль, а функция-член Total () отображает 5 вместо 3, а At (n) возвращает 0 при индексе 0-1 и ожидаемое значение 2-4. Таким образом, мои ожидаемые данные на уровне 2-4, а резерв, который я подозреваю, на уровне 0-1. Как я могу остановить CArrayObj зарезервировать место?

Я попытался установить функцию-член CArrayObj Reserve на 0, но она настроена на игнорирование 0, как показано ниже

bool CArrayObj::Reserve(const int size){
   int new_size;
//--- check
   if(size<=0)
      return(false);
//--- resize array 
if(Available()<size)
     {
      new_size=m_data_max+m_step_resize*(1+(size-Available())/m_step_resize);
      if(new_size<0)
         //--- overflow occurred when calculating new_size
         return(false);
      if((m_data_max=ArrayResize(m_data,new_size))==-1)
         m_data_max=ArraySize(m_data);
      //--- explicitly zeroize all the loose items in the array
      for(int i=m_data_total;i<m_data_max;i++)
         m_data[i]=NULL;
     }
//--- result
   return(Available()>=size);
}

Я ожидаю, что CArrayObj будет только 3, как я хочу.

...