MetaTrader 5 herunterladen

ArrayInitialize

Initialisiert das numerische Array durch den vorgegebenen Wert.

For initialization of an array of char type

int  ArrayInitialize(
   char    array[],     // initialisiertes array
   char    value        // der zu gestellte wert
   );

For initialization of an array of short type

int  ArrayInitialize(
   short   array[],     // initialisiertes array
   short   value        // der zu gestellte wert
   );

For initialization of an array of int type

int  ArrayInitialize(
   int     array[],     // initialisiertes array
   int     value        // der zu gestellte wert
   );

For initialization of an array of long type

int  ArrayInitialize(
   long    array[],     // initialisiertes array
   long    value        // der zu gestellte wert
   );

For initialization of an array of float type

int  ArrayInitialize(
   float   array[],     // initialisiertes array
   float   value        // der zu gestellte wert
   );

For initialization of an array of double type

int  ArrayInitialize(
   double  array[],     // initialisiertes array
   double  value        // der zu gestellte wert
   );

For initialization of an array of bool type

int  ArrayInitialize(
   bool    array[],     // initialisiertes array
   bool    value        // der zu gestellte wert
   );

For initialization of an array of uint type

int  ArrayInitialize(
   uint    array[],     // initialisiertes array
   uint    value        // der zu gestellte wert
   );

Parameter

array[]

[out] Das numerische Array, das initialisiert werden muss.

value

[in]  Neuer Wert, der für alle Elemente des Arrays eingestellt werden muss.  

Rückgabewert

Anzahl der Elemente.

Hinweis

Die Funktion ArrayResize() erlaubt die Größe für ein Array mit einem Reserve vorzugeben, damit es größer wird ohne physische Umverteilung des Speichers. Das wird für Operationsgeschwindigkeit gemacht, denn Operationen der Speicherverteilung sind langsam genug.

Die Initialisierung des Arrays vom Ausdruck ArrayInitialize(array, init_val) bedeutet nicht die Initialisierung durch denselben Wert der Elemente der Reserve, die für dieses Array gewählt ist. Bei weiteren Vergrößerungen des Arrays array durch die Funktion ArrayResize() innerhalb des laufenden Reserves, am Ende des Arrays werden die Elemente einfügt, deren Werte nicht bestimmt sind und am öftesten sind sie nicht init_val gleich.

Beispiel:

void OnStart()
  {
//--- dynamisches Array
   double array[];
//--- geben wir die Größe des Arrays für 100 Elemente vor und reservieren wir noch einen Puffer für 10 Elemente 
   ArrayResize(array,100,10);
//--- initialisieren wir die Elemente des Arrays durch den Wert EMPTY_VALUE=DBL_MAX
   ArrayInitialize(array,EMPTY_VALUE);
   Print("Werte der letzten 10 Elemente des Arrays nach der Initialisierung");
   for(int i=90;i<100;i++) printf("array[%d]=%G",i,array[i]);
//--- vergrößern wir das Array um 5 Elemente 
   ArrayResize(array,105);
   Print("Werte der letzten 10 Elemente des Arrays nach ArrayResize(array,105)");
//--- Werte der letzten 5 Elemente wurden aus Reservepuffer erhalten 
   for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
  }