MQL4 CArrayObj如何将reserve设置为0或完全避免使用?

时间:2019-06-03 18:18:46

标签: mql4

MQL4 CArrayObj成员函数At(n)返回零,成员函数Total()显示5而不是3,At(n)在索引0-1处返回0,在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,就像我想要的那样。

0 个答案:

没有答案