【MQL4勉強プログラミング】ArrayResize()関数で配列の最初の次元のサイズを変更

ArrayResize()関数は、配列の最初の次元のサイズを変更するために使用します。

ArrayResize()関数は、以下のように定義されています。

 

int ArrayResize(
void& array[],
int new_size,
int reserve_size=0
);

各引数の意味は、以下のとおりです。

  • void& array[]
    サイズを変更する配列名を指定します。
  • int new_size
    変更後の配列の最初の次元のサイズを指定します。
  • int reserve_size=0
    変更後の配列のデータを保存する物理メモリのサイズを指定します。
    当該引数は選択的なものなので、省略することができます。

戻り値

  • 配列のサイズ変更が成功した場合
    サイズ変更後の配列の要素数を返します。
  • 配列のサイズ変更が成功しなかった場合
    「-1」を返して、配列のサイズは変更されません。

注意点

ArrayResize()関数は、動的配列にのみ適用することができます。

ただし、SetIndexBuffer()関数によってインジケーターバッファーとして割り当てられた動的配列は、ArrayResize()関数によって配列のサイズを変更することはできません。

また、配列の全要素数は「2147483647」を超えることはできません。

頻繁にArrayResize()関数を使用する場合は、プログラムの実行速度を速くするために、第三引数を使用することが推奨されます。