Iは、例えば、同じタイプのstructの3つの別々の配列をしました:for C in hereに記載されるようにMQLでstructの配列にポインタを割り当てる方法は?
MqlTradeRequest orders1[];
MqlTradeRequest orders2[];
MqlTradeRequest orders3[];
同様。
これらの配列が後で作成されると仮定して、どのようにこれらの配列の共通ポインタを作成できますか? orders_ptr = &orders1
または*orders_ptr = orders1
:
だから私のような何かを行うことができます。ここで
は私の非稼働コードです:別のプールで
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で行われていますように私は似たような意味:
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);
}
};
そしてここでもう一つの試みがありますしかし、私のプールは完全に異なっています。
しかし、上記のコードは多くのエラーでうまくいかず、意味をなさないので、私はコメントのいくつかをコメントに含めました。
正しいアプローチは何ですか?
私の目標は、構造体の配列にポインタを代入して、選択した配列をトラバースすることです。
[out-of-record]あなたの最近の問題は、実際に* New * -'MQL4/5'構文境界の創造的な拷問テストであるようです。狩りに幸運!いつも群衆にインスピレーションを与え、男+1! – user3666197