Русский

Справочник MQL4 Операции с массивами ArraySize

ArraySize

Возвращает количество элементов указанного массива.

int  ArraySize(
   const void&  array[]    // проверяемый массив
   );

Параметры

array[]

[in]  Массив любого типа.

Возвращаемое значение

Значение типа int.

Примечание

Для одномерного массива значение, возвращаемое функцией 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. одномерный массив
   Print("+==========================================================+");
   Print("Размеры массивов:");
   Print("1. Одномерный массив");
   size=ArraySize(one_dim);
   PrintFormat("Размер нулевого измерения = %d, Размер массива = %d",one_dim_size,size);
//--- 2. многомерный массив
   Print("2. Многомерный массив");
   size=ArraySize(four_dim);
   PrintFormat("Размер нулевого измерения = %d, Размер массива = %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("Проверка:");
   Print("Нулевое измерение = Размер массива / (Первое измерение * Второе измерение * Третье измерение)");
   PrintFormat("%d = %d / (%d * %d * %d)",size/(d_1*d_2*d_3),size,d_1,d_2,d_3);
//--- 3. одномерный массив с резервированием памяти
   Print("3. Одномерный массив с резервированием памяти");
//--- увеличим значение в 2 раза
   one_dim_size*=2;
//--- выделим память с резервированием
   ArrayResize(one_dim,one_dim_size,reserve);
//--- распечатаем размер
   size=ArraySize(one_dim);
   PrintFormat("Размер с резервированием = %d, Реальный размер массива = %d",one_dim_size+reserve,size);
  }