Descargar MetaTrader 5

ArrayInitialize

Esta función inicializa un array numérico usando un valor especificado.

For initialization of an array of char type

int  ArrayInitialize(
   char    array[],     // array inicializado
   char    value        // valor que va a ser puesto
   );

For initialization of an array of short type

int  ArrayInitialize(
   short   array[],     // array inicializado
   short   value        // valor que va a ser puesto
   );

For initialization of an array of int type

int  ArrayInitialize(
   int     array[],     // array inicializado
   int     value        // valor que va a ser puesto
   );

For initialization of an array of long type

int  ArrayInitialize(
   long    array[],     // array inicializado
   long    value        // valor que va a ser puesto
   );

For initialization of an array of float type

int  ArrayInitialize(
   float   array[],     // array inicializado
   float   value        // valor que va a ser puesto
   );

For initialization of an array of double type

int  ArrayInitialize(
   double  array[],     // array inicializado
   double  value        // valor que va a ser puesto
   );

For initialization of an array of bool type

int  ArrayInitialize(
   bool    array[],     // array inicializado
   bool    value        // valor que va a ser puesto
   );

For initialization of an array of uint type

int  ArrayInitialize(
   uint    array[],     // array inicializado
   uint    value        // valor que va a ser puesto
   );

Parámetros

array[]

[out]  Array numérico que hay que inicializar.

value

[in]  Nuevo valor que hay que asignar a todos los elementos del array.

Valor devuelto

Número de elementos.

Nota

La función ArrayResize() permite establecer el tamaño de un array con una cierta reserva para su futura expansión sin redistribución física de la memoria. Esto se implementa para mejorar el rendimiento, puesto que las operaciones de redistribución de la memoria son bastante lentas.

La inicialización del array usando la expresión ArrayInitialize(array, init_val) no significa la inicialización con el mismo valor de los elementos de la reserva adjudicada para este array. Con las futuras expansiones del tamaño del array array mediante la función ArrayResize() dentro de los márgenes de la reserva actual, al final del array se añadirán los elementos cuyos valores no estarán definidos, y en mayoría de las ocasiones no van a ser iguales a init_val.

Ejemplo:

void OnStart()
  {
//--- array dinámico
   double array[];
//--- vamos a establecer el tamaño del array para 100 elementos y reservar el búfer para otros 10 elementos
   ArrayResize(array,100,10);
//--- inicializamos los elementos del array con el valor EMPTY_VALUE=DBL_MAX
   ArrayInitialize(array,EMPTY_VALUE);
   Print("Valores de los últimos 10 elementos del array después de la inicialización");
   for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]);
//--- aumentamos el tamaño del array por 5 elementos
   ArrayResize(array,105);
   Print("Valores de los últimos 10 elementos del array después de ArrayResize(array,105)");
//--- los valores de 5 últimos elementos han sido recibidos desde el buffer de reserva
   for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
  }


Actualizado: 2015.12.03