Справочник MQL4

ArrayFill

Заполняет числовой массив указанным значением.

void  ArrayFill(
   void&  array[],       // массив
   int    start,         // индекс начального элемента
   int    count,         // количество элементов
   void   value          // значение, которым заполняется массив
   );

Параметры

array[]

[out]  Массив простого типа (char, uchar, short, ushort, int, uint, long, ulong, bool, color, datetime, float, double).

start

[in]  Индекс начального элемента (с какого элемента заполнять). При этом не учитывается установленный флаг серийности.

count

[in]  Количество элементов, которое следует заполнить.

value

[in]  Значение, которым заполняется массив.

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

Нет возвращаемого значения.

Примечание

При вызове функции ArrayFill() всегда подразумевается обычное направление индексации – слева направо, то есть изменение порядка доступа к элементам массива с помощью функции ArraySetAsSeries() не принимается во внимание.

Многомерный массив при обработке функцией ArrayFill() представляется одномерным, например, массив array[2][4] обрабатывается как array[8], поэтому при работе с этим массивом допустимо указать индекс начального элемента равным 5. Таким образом, вызов ArrayFill(array, 5, 2, 3.14) для массива array[2][4] заполнит значением 3.14 элементы массива array[1][1] и array[1][2].

Пример:

void OnStart()
  {
//--- объявляем динамический массив
   int a[];
//--- устанавливаем размер
   ArrayResize(a,10);
//--- заполняем начальные 5 элементов значением 123
   ArrayFill(a,0,5,123);
//--- заполняем 5 элементов (начиная с 5-го) значением 456
   ArrayFill(a,5,5,456);
//--- выводим значения всех элементов
   for(int i=0;i<ArraySize(a);i++) printf("a[%d] = %d",i,a[i]);
  }