ArraySize

この関数は配列の要素数を返します。

int  ArraySize(
  const void&  array[]   // チェックされた配列
  );

パラメータ

array[]

[in]  任意型の配列

戻り値

int 型の値

注意事項

1次元配列の場合 ArraySize の返す値は ArrayRange(array,0) の返す値と等しいです。

例:

void OnStart()
 {
//--- 配列を作成する
  double one_dim[];
  double four_dim[][10][5][2];
//--- サイズ
  int one_dim_size=25;
  int reserve=20;
  int four_dim_size=5;
//--- 補助変数
  int size;
//--- バックアップせずにメモリを割り当てる
  ArrayResize(one_dim,one_dim_size);
  ArrayResize(four_dim,four_dim_size);
//--- 1. 1 次元配列
  Print("+==========================================================+");
  Print("Array sizes:");
  Print("1. One-dimensional array");
  size=ArraySize(one_dim);
  PrintFormat("Zero dimension size = %d, Array size = %d",one_dim_size,size);
//--- 2. 多次元配列
  Print("2. Multidimensional array");
  size=ArraySize(four_dim);
  PrintFormat("Zero dimension size = %d, Array size = %d",four_dim_size,size);
//--- 次元サイズ
  int d_1=ArrayRange(four_dim,1);
  int d_2=ArrayRange(four_dim,2);
  int d_3=ArrayRange(four_dim,3);
  Print("Check:");
  Print("Zero dimension = Array size / (First dimension * Second dimension * Third dimension)");
  PrintFormat("%d = %d / (%d * %d * %d)",size/(d_1*d_2*d_3),size,d_1,d_2,d_3);
//--- 3. メモリバックアップと 1 次元配列
  Print("3. One-dimensional array with memory backup");
//--- 値を倍増する
  one_dim_size*=2;
//--- メモリを割り当ててバックアップする
  ArrayResize(one_dim,one_dim_size,reserve);
//--- サイズをプリントする
  size=ArraySize(one_dim);
  PrintFormat("Size with backup = %d, Actual array size = %d",one_dim_size+reserve,size);
 }