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,就像我想要的那样。