如何通过引用MQL4将方法输出分配给变量

时间:2018-04-19 04:36:12

标签: pass-by-reference mql4

我猜这个问题将适用于除MQL4之外的许多类似语言,例如c ++(我也忘记了如何使用),这些语言需要您手动指定何时通过引用传递。

方法参考:

int[] previous = GetPrevious(i, ZigZagBuffer);

方法定义:

int GetPrevious[](int current, const double& buffer[])
{
   int count = 0;
   int result[];
   // calculate count
   ArrayResize(result,count);
   // fill array
   return result;
}

产生的编译错误是:

  

"无效的数组访问"

据我所知,这是因为数组只能通过引用传递,但你必须明确声明你是通过引用传递它的。但是我越是查找通过引用传递的语法,我就越发现有关通过引用传递参数的文章。 (我已经知道如何在代码示例中看到。)

将方法输出分配给变量的语法是什么?

如果重要,我只需要多次读取数组;我宣布后不需要改变或重新分配它。

1 个答案:

答案 0 :(得分:1)

您无法返回数组。你必须创建它并传入函数,填充函数内部就是这样。

OnTick(){
   double array[];                 //declaration of the array
   fillArray(array,10);            //passing array by ref, updating it there
   Print(array[0]=0 && array[9]=9);//returns true
}

void fillArray(double &array[],int size){
   ArrayResize(array,size);
   for(int i=0;i<size;i++){array[i]=i;}
}