ArrayInitialize

La funzione inizializza un array numerico per un valore prestabilito.

For initialization of an array of char type

int  ArrayInitialize(
   char    array[],     // array inizializzato
   char    value        // valore che verrà impostato
   );

For initialization of an array of short type

int  ArrayInitialize(
   short   array[],     // array inizializzato
   short   value        // valore che verrà impostato
   );

For initialization of an array of int type

int  ArrayInitialize(
   int     array[],     // array inizializzato
   int     value        // valore che verrà impostato
   );

For initialization of an array of long type

int  ArrayInitialize(
   long    array[],     // array inizializzato
   long    value        // valore che verrà impostato
   );

For initialization of an array of float type

int  ArrayInitialize(
   float   array[],     // array inizializzato
   float   value        // valore che verrà impostato
   );

For initialization of an array of double type

int  ArrayInitialize(
   double  array[],     // array inizializzato
   double  value        // valore che verrà impostato
   );

For initialization of an array of bool type

int  ArrayInitialize(
   bool    array[],     // array inizializzato
   bool    value        // valore che verrà impostato
   );

For initialization of an array of uint type

int  ArrayInitialize(
   uint    array[],     // array inizializzato
   uint    value        // valore che verrà impostato
   );

Parametri

array[]

[out] Array numerico che deve essere inizializzato.

valore

[in] Nuovo valore che dovrebbe essere impostato per tutti gli elementi dell'array.

Valore restituito

Numero di elementi.

Nota

La funzione ArrayResize() permette di impostare la dimensione di un array con una riserva per un'ulteriore espansione senza la rilocazione fisica della memoria. Viene implementato per una migliore performance, perché le operazioni di delocalizzazione della memoria sono abbastanza lente.

L' inizializzazione dell' array con ArrayInitialize(array, init_val) non significa l'inizializzazione con lo stesso valore di elementi di riserva allocati per questo array. Ad ulteriore espansione dell' array utilizzando la funzione ArrayResize(), gli elementi verranno aggiunti alla fine dell'array, i loro valori saranno indefiniti ed in molti casi non saranno uguali ad init_value.

Esempio:

voidOnStart()
  {
//--- array dinamico
   double array[];
//--- imposta la grandezza dell'array per 100 elementi e riserviamo un buffer per altri 10 elementi
   ArrayResize(array,100,10);
//--- inizializza gli elementi dell'array con il valore EMPTY_VALUE=DBL_MAX
   ArrayInitialize(array,EMPTY_VALUE);
   Print("Valori degli ultimi 10 elementi dopo l'inizializzazione");
   for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]);
//--- espande l'array di 5 elementi
   ArrayResize(array,105);
   Print("Valori degli ultimi 10 elementi dopo ArrayResize(array,105)");
//--- i valori degli ultimi 5 elementi sono ottenuti dal buffer riserva
   for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
  }