MQL4自定义数组函数报错“参数转换不允许”,求助原因
解决MQL中“参数转换不允许”的数组函数报错
你遇到的报错是因为MQL4/MQL5中数组作为函数参数必须用引用传递,原代码里直接声明int[] array不符合语法规则,编译器无法完成参数类型转换,因此触发报错。
修正后的代码如下:
int BelongsToArray(int value, int &array[]) { int arrSize = ArraySize(array); for(int i=0; i<arrSize; i++) { if(value == array[i]) { return true; // 值存在于数组中 } } return false; // 值不存在于数组中 }
额外注意:
- 调用该函数时,传入的数组必须是已经完成内存分配的初始化数组,否则
ArraySize会返回0,函数无法正常执行判断逻辑。 - MQL5的数组参数传递规则与MQL4一致,同样需要使用引用声明。
内容的提问来源于stack exchange,提问作者user310291
相关产品推荐
相关产品推荐

