ArrayInitialize

A função inicializa um array numérico com um valor predefinido.

For initialization of an array of char type

int  ArrayInitialize(
   char    array[],     // array inicializado
   char    value        // valor que será definido
   );

For initialization of an array of short type

int  ArrayInitialize(
   short   array[],     // array inicializado
   short   value        // valor que será definido
   );

For initialization of an array of int type

int  ArrayInitialize(
   int     array[],     // array inicializado
   int     value        // valor que será definido
   );

For initialization of an array of long type

int  ArrayInitialize(
   long    array[],     // array inicializado
   long    value        // valor que será definido
   );

For initialization of an array of float type

int  ArrayInitialize(
   float   array[],     // array inicializado
   float   value        // valor que será definido
   );

For initialization of an array of double type

int  ArrayInitialize(
   double  array[],     // array inicializado
   double  value        // valor que será definido
   );

For initialization of an array of bool type

int  ArrayInitialize(
   bool    array[],     // array inicializado
   bool    value        // valor que será definido
   );

For initialization of an array of uint type

int  ArrayInitialize(
   uint    array[],     // array inicializado
   uint    value        // valor que será definido
   );

Parâmetros

array[]

[out]  Array numérico que deve ser inicializado.

value

[in]  Novo valor que deve ser definido para todos os elementos do array.

Valor do Retorno

Número de elementos.

Observação

A função ArrayResize() permite definir o tamanho de um array com uma reserva para expansão posterior sem a realocação de memória. É implementada para uma melhor performance, porque as operações de realocação de memória são razoavelmente lentas.

A inicialização de um array usando ArrayInitialize(array, init_val) não significa a inicialização com o mesmo valor dos elementos da reserva alocados para este array. Em uma expansão posterior do array usando a função ArrayResize(), os elementos serão adicionados no final do array, seus valores serão indefinidos e na maioria dos casos não serão iguais ao init_value.

Exemplo:

void OnStart()
  {
//--- array dinâmico
   double array[];
//--- vamos definir o tamanho do array para 100 elementos e reservar um buffer para outros 10 elementos
   ArrayResize(array,100,10);
//--- inicializa os elementos do array com valor EMPTY_VALUE=DBL_MAX
   ArrayInitialize(array,EMPTY_VALUE);
   Print("Valores dos 10 últimos elementos antes da inicialização");
   for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]);
//--- expande o array em 5 elementos
   ArrayResize(array,105);
   Print("Valores dos 10 últimos elementos antes do ArrayResize(array,105)");
//--- valores dos 5 últimos elementos são obtidos do buffer de reserva
   for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
  }