나는 예를 들어, 동일한 유형의 struct의 3 개 별도의 배열을했습니다 : for C in here을 설명MQL에서 struct 배열에 포인터를 할당하는 방법은 무엇입니까?
MqlTradeRequest orders1[];
MqlTradeRequest orders2[];
MqlTradeRequest orders3[];
와 유사합니다.
이러한 배열이 나중에 채워지므로 어떻게 이들 중 하나에 대한 공통 포인터를 만들 수 있습니까? 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에 끝났다 나는이 비슷한 의미 ,하지만 내 수영장은 완전히 다릅니다.
그러나 위의 코드는 많은 의미가없는 많은 오류로 인해 실패하지만 몇 가지를 주석에 포함 시켰습니다.
올바른 접근 방법은 무엇입니까?
내 목표는 구조체 배열에 대한 포인터를 할당하여 선택한 배열을 탐색 할 수 있도록하는 것입니다.
[out-of-record] 최근의 문제는 실제로 * New * -'MQL4/5' 구문 내부 경계의 독창적 인 고문 테스트 인 것으로 보입니다. 사냥에 행운을 빈다! 군중을 항상 고무시키는 +1 남자! – user3666197