動的配列オブジェクト
動的配列
最大 4 次元の配列の宣言が可能です。動的配列(最初の角括弧ペアで値が指定されていない配列)が宣言されると、コンパイラは自動的にこのような構造の変数(動的配列オブジェクト)を作成し、適切な初期化のためのコードを提供します。
動的配列は、宣言されたブロックの視認性の領域を越えた時に、自動的に解放されます。
例:
double matrix[][10][20]; // 3 次元動的配列 |
静的配列 #
大サイズの配列の次元が明示的に指定されている場合、コンパイラは必要なメモリサイズを事前に割り当てます。このような配列は、静的配列と呼ばれています。それにもかかわらず、コンパイラは事前に割り当てられた静的バッファ(配列を格納するためのメモリの一部)に関連付けられている動的配列(オブジェクト)のために追加のメモリを割り当てます。
動的配列オブジェクトを作成するのは、この静的配列を関数にパラメータとして渡すことが必要になる可能性があるからです。
例:
double stat_array[5]; // 1 次元静的配列 |
構造体内の配列
静的配列が構造体のメンバとして宣言されている場合には、動的配列オブジェクトは作成されません。これは、Windows API で使用されるデータ構造の互換性を確保するためです。
しかし、構造体のメンバとして宣言されている静的配列も MQL5 関数に渡されることが出来ます。この場合、パラメータを渡す時に、一時オブジェクトの動的配列が作成されます。この配列は、構造体のメンバである静的配列にリンクされています。
Originally posted 2019-07-27 09:51:29.