gpt4 book ai didi

pointers - 如何在MQL中分配指向结构数组的指针?

转载 作者:行者123 更新时间:2023-12-02 10:46:21 25 4
gpt4 key购买 nike

我有3个单独的相同类型的struct数组,例如:

MqlTradeRequest orders1[];
MqlTradeRequest orders2[];
MqlTradeRequest orders3[];

for C in here相似。

假设稍后填充了这些数组,如何创建指向其中之一的通用指针?

所以我可以做类似的事情: orders_ptr = &orders1*orders_ptr = orders1

这是我的无效代码:
MqlTradeRequest orders1[];
MqlTradeRequest orders2[];
MqlTradeRequest orders3[];

enum ORDERS_POOL {
POOL1,
POOL2,
POOL3
};

void start(ORDERS_POOL _pool = POOL1) {
MqlTradeRequest (*orders_ptr)[]; // Error: Invalid operation use.
switch (_pool) {
case POOL1: orders_ptr = &orders1; break; // Error: Invalid array access, class type expected.
case POOL2: orders_ptr = &orders2; break; // Error: Invalid array access, class type expected.
case POOL3: orders_ptr = &orders2; break; // Error: Invalid array access, class type expected.
}
for (int i = 0; i < ArraySize(orders_ptr); i++) {
Print(orders_ptr[i].order);
}
};

这是另一种尝试:
  MqlTradeRequest *orders_ptr; // Error: Invalid operation use.
switch (_pool) {
case POOL1: *orders_ptr = GetPointer(orders1); break; // Error: Object pointer expected.
case POOL2: *orders_ptr = GetPointer(orders2); break; // Error: Object pointer expected.
case POOL3: *orders_ptr = GetPointer(orders2); break; // Error: Object pointer expected.
}

通过不同的池,我的意思与在 OrderSelect中使用池参数进行的操作类似,但是我的池完全不同。

但是,上面的代码失败,并带有很多毫无意义的错误,我在注释中包括了其中一些。

什么是正确的方法?

我的目标是为结构数组分配一个指针,这样我就可以遍历选定的数组。

最佳答案

在我看来,您无法在MQL5中做到这一点,您只能将动态类的指针用于类,对于结构而言,它是静态指针,与数组或基元相同,而MqlRates是一种结构而不是类。 -创建具有Mql结构数组的类。

关于pointers - 如何在MQL中分配指向结构数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41706161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com