MQL4 MQL5 二次元配列変数 関数への渡し方

プログラム

MQL4、MQL5 二次元配列変数 関数への渡し方をシェアしたいと思います。

下記の方法で出来るので、MQL4、MQL5で二次元配列の変数を関数に渡す場合は参照にして下さい。

関数の渡し方

下記のサンプルコードで説明します。

int priceA[2][2], priceB[2][2]; 

int OnInit(){

priceA[0][0] = 1;
priceA[0][1] = 10;
priceA[1][0] = 3;
priceA[1][1] = 20;

priceB[0][0] = 5;
priceB[0][1] = 15;
priceB[1][0] = 25;
priceB[1][1] = 35;

Print(priceB[0][0], priceB[0][1], priceB[1][0], priceB[1][1]);

priceinput(priceA, priceB);

Print(priceB[0][0], priceB[0][1], priceB[1][0], priceB[1][1]);
}

void priceinput(int &p1[][], int &p2[][] ){

p2[0][0] = p1[0][0];
p2[0][1] = p1[0][1];
p2[1][0] = p1[1][0];
p2[1][1] = p1[1][1];

}
1行目 二次元配列の変数の定義

二次元配列の変数 priceA[2][2]、priceB[2][2] の定義をします。これは2行2列の配列変数になります。

int priceA[2][2], priceB[2][2]; 
5~15行目 数値の代入と出力

数値を代入して、二次元配列p2を出力します。

priceBの出力結果は下記になります。

##Print(priceB[0][0], priceB[0][1], priceB[1][0], priceB[1][1]);
5152535
17行目 p2の配列にp1の配列を代入

次に、priceinput(priceA, priceB)の関数を呼び出します。

この時の二次元配列の関数引き渡しは、そのまま配列を代入します。

そして、関数側 priceinput の定義の1行目を確認すると、&p1[][], &p2[][] という&を付けます

関数内は&を外して計算式を書きます

void priceinput(int &p1[][], int &p2[][] ){

p2[0][0] = p1[0][0];
p2[0][1] = p1[0][1];
p2[1][0] = p1[1][0];
p2[1][1] = p1[1][1];

}
19行目 出力の確認

p2にp1が代入されたので、下記の出力がされます。

110320

まとめ

  • 二次元配列の変数の定義はそのまま
  • 関数の定義の時に、二次元配列の変数に『』を付ける

通貨ペアなどで、多次元配列を用いることが多いと思います。そういう時はを付けて対応しましょう。

因みに、MQL4、MQL5はC言語ベースなのですが、純粋にC言語のプログラムを記述する際、同様の定義の方法だと、C言語のコンパイラーでエラーになるので気を付けて下さい。

プログラム
スポンサーリンク
シェアする
フォローする

コメント

タイトルとURLをコピーしました