トップ  >  リファレンス  >  基本  >  データ型  > 動的配列
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
動的配列


動的配列

最大で4次元配列まで宣言できます。
動的配列(最初の次元の角括弧([])の値が指定されていない時)を宣言した場合、
コンパイラは自動的に動的配列を生成します。

動的配列は可視領域を超えた時に自動的に開放されます。

サンプルソース:

int new_size;

int tmp_array[][20];                    // 動的配列を宣言
new_size = ArrayResize(tmp_array,5);   // 最初の次元のサイズを5に設定

// 5*20の動的配列が生成される
Print(new_size);                        // 新しい配列サイズ100が表示される


静的配列

すべての次元配列を明示的に指定した場合、コンパイラは事前に必要なメモリサイズを割り当てます。
この様な配列は静的配列と言われます。

静的配列を用いても、コンパイラは動的配列の為の追加メモリを割り当てます。
関数の引数として静的配列を渡した時に動的配列が作成されます。

サンプルソース:

int OnInit(){

    double stat_array[5];     // 静的配列を宣言
    tmp_function(stat_array);  // 関数の引数に静的配列を渡す

    return 0;
}

void tmp_function(double& array[])  {

    int new_size;

    new_size = ArrayResize(array,100);
    Print(new_size);          // 新しい動的配列のサイズ100が表示される
    
}


構造体の配列

構造体メンバが静的配列で宣言される時、動的配列は作成されません。
これはWindows APIで使用されるデータ構造体の互換性を確実にする為です。

しかし静的配列で宣言された構造体メンバはMQL4関数に使用する事も出来ます。
静的配列の構造体メンバを渡す時に、一時的に動的配列が作成されます。
スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system