我猜这个问题将适用于除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;
}
产生的编译错误是:
"无效的数组访问"
据我所知,这是因为数组只能通过引用传递,但你必须明确声明你是通过引用传递它的。但是我越是查找通过引用传递的语法,我就越发现有关通过引用传递参数的文章。 (我已经知道如何在代码示例中看到。)
将方法输出分配给变量的语法是什么?
如果重要,我只需要多次读取数组;我宣布后不需要改变或重新分配它。
答案 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;}
}