改めて前回の内容をおさらいをしておくと、
- 最初に宣言した数以上の配列にアクセスしようとすると、範囲外アクセスエラーを引き起こすので注意する。
ということをお伝えしました。
今回は静的配列と動的配列 について解説していこうと思います。
※MQL5で自動売買プログラム作るにあたっては、メタトレーダー5・メタエディター5がお使いのパソコンにインストールされている必要があります。
もし、まだメタトレーダー5のダウンロードが完了していない方は、
こちらからデモ口座の開設とメタトレーダー5のダウンロード・インストールを完了して頂ければと思います。
静的配列とは?
静的配列は
のことです。
前回の記事で解説した
int Array[3]
というのは、
[3]
と書くことによって、「3つのデータを使う」という風に最初に決定しています。
静的配列の場合、
いったん「3つのデータを使う」という宣言を最初にしたら、
後からそれを変えることはできません。
でも、作るプログラムによっては、それだと都合が悪い場合が出てきます。
そこで登場するのが動的配列です。
動的配列とは?
最初に配列を作るとき(=宣言する時)に「いくつのデータを使うか」を決定しない配列」
です。
このように
int dynamicArray[];
[]のなかに、扱うデータ数を指定せず、ブランクにします。
動的配列は価格データや、インディケーターに関する値データを扱う際によく使われます。
動的配列が扱う配列サイズはArrayResize関数という関数で、後から決めることができます。
※関数とはより簡単に、プログラムを動かすための仕組みです。関数については講座第25回で取り上げますが、先に詳しく知りたいという方は↓の記事をご覧ください。(特に先に読んでも差し支えないと思います)
//動的配列「dynamicArray」を作る
int dynamicArray[];
//配列dynamicArrayの扱える配列サイズを3に変更する。
ArrayResize(dynamicArray,3);
//配列dynamicArrayの1番目の変数に5を代入する。
dynamicArray[0]=5;
↑のような形で、動的配列だった配列dynamicArrayのサイズを途中で、ArrayResize関数を使って3に変更しました。
関数全般の話をまだしていないので、ArrayResize関数の()の中身もまだわからなくても大丈夫なのですが、一応説明しておくと
・()の中の最初にサイズ変更したい配列名を記述し、コンマで区切った次に変更サイズを指定する。
↑のような記述ルールの関数になっています。
まとめ
今回の記事では以下のことを学びました
- 動的配列は扱える配列サイズが決まっていない配列で、配列サイズは後からArrayResize関数などで変えることができる。
最後までお読みいただきありがとうございました<m(__)m>
コメント