MQL5如何实现函数返回结构体数组并读取返回结果?
MQL5返回结构体数组函数的错误修正与实现
代码存在的问题
- 结构体定义不规范:将
resultdata定义在函数内部,外部作用域无法识别该类型,同时代码中使用的MyData未做任何类型定义,类型完全不匹配。 - 函数未声明返回值类型:MQL5为强类型语言,所有函数必须明确指定返回值类型,无返回值的函数也需要声明为
void。 - 缺少返回语句:函数内定义的数组没有通过
return返回给调用方,函数执行完没有任何结果输出。 - 接收变量未声明类型:
my_function_feedback没有提前声明为对应结构体数组类型,编译器无法识别该变量。
正确实现代码
// 全局作用域定义结构体,确保所有调用位置都能识别该类型 struct ResultData { string name; double price; int qty; }; // 明确声明函数返回值为ResultData类型的动态数组 ResultData[] my_function(){ ResultData arr[] = { {"product 1", 110.000, 200}, {"product 2", 110.100, 300}, {"product 3", 110.200, 400}, }; // 显式返回结构体数组 return arr; } void OnStart() { // 声明对应类型的变量接收函数返回结果 ResultData my_function_feedback[]; my_function_feedback = my_function(); Print("First is ", my_function_feedback[0].name); // 输出结果:First is product 1 }
内容的提问来源于stack exchange,提问作者relo80
相关产品推荐
相关产品推荐

