Objekt des dynamischen Arrays

Dynamische Arrays

Maximum kann ein vierdimensionales Array zugelassen. Bei der Erklaerung des dynamischen Arrays (Array mit einem nicht angegebenen Wert im ersten Paar der eckigen Klammern) erzeugt der Compiler automatisch eine Variable der oben angegebenen Struktur (Objekt des dynamischen Feldes) und stellt den Kode für die richtige Initialisierung bereit.

Dynamische Arrays werden automatisch befreit, wenn sie ausserhalb des Blocks gehen, wo sie erklärt werden.

Beispiel:

double matrix[][10][20]; // dreidimensionales dynamischer Feld 
ArrayResize(matrix,5);   // stellen die Größe der ersten Messung 

 
Statische Arrays

Bei der explizeten Angebung aller bedeutenden Dimensionen des Arrays, verteilt der Compiler im voraus die erforderliche Speichergroesse. Ein solches Array wird statisch genannt. Dennoch verteilt der Compiler Speicher für Objekt des dynamischen Arrays, das (Objekt) mit dem vorher verteilten Puffer verbunden ist (Speicherteil für Feldaufbewahren).

Erzeugen eines Objekts des dynamischen Arrays ist durch die moegliche Notwendigkeit bedingt, das angegebene statische Feld in eine Funktion als Parameter zu übertragen.

Beispiele:

double stat_array[5]; // eindimensionales statisches Feld 
some_function(stat_array);
...
bool some_function(double& array[])
  {
   if(ArrayResize(array,100)<0return(false);
   ...
   return(true);
  }

 
Arrays als Strukturteile

Bei der Deklaration eines statischen Arrays als Teil einer Struktur wird ein Objekt des dynamischen Arrays nicht erzeugt. Das wird für Kompatibilitaet der Datenstrukturen gemacht, die in Windows API verwendet werden.

Aber statische Felder, die als Strukturglieder erklärt werden, können auch in MQL5-Funktionen übertragen werden. In diesem Fall wird bei Parameterübertragung ein zeitliches Objekt des dynamischen Feldes erzeugt werden, das mit dem statischen Array - Strukturglied verbunden ist.

Sehen Sie auch

Operationen mit Arrays, Initialisierung der Variablen, Sichtbereich und Lebensdauer der Variablen, Erzeugung und Entfernung der Objekte