Dinamik Dizi Nesnesi

Dinamik Diziler

Diziler en fazla 4 boyutlu olacak şekilde bildirilir. Dinamik dizileri (ilk köşeli parantezlerinin içinde değer belirtilmemiş diziler) bildirirken, derleyici otomatik olarak üstteki yapıdan bir değişken oluşturur (bir dinamik dizi nesnesi) ve düzgün başlatma için bir kod sağlar.

Dinamik dizinin bildirildiği bloğun kapsamı dışına çıkıldığında, diziye tahsis edilen bellek alanı otomatik olarak boşaltılır.

Örnek:

double matrix[][10][20]; // 3 boyutlu dinamik dizi
ArrayResize(matrix,5);   // ilk boyutun büyüklüğünü ayarla

Statik diziler #

Bir dizinin tüm boyutları açıkça belirtildiğinde, derleyici gerekli bellek boyutunu önceden tahsis eder. Bu tip diziler statik olarak adlandırılır. Yine de derleyici, önceden tahsis edilmiş ara-bellekle ilişkili olan bir dinamik dizi nesnesi için ek bellek tahsis edebilir.

Dinamik dizi nesnesinin oluşturulması, statik diziyi parametre olarak bir fonksiyona geçirme ihtiyacından kaynaklanır.

Örnekler:

double stat_array[5]; // 1 boyutlu statik dizi
some_function(stat_array);
... 
bool some_function(double& array[])
  {
   if(ArrayResize(array,100)<0return(false);
  ... 
   return(true);
  }

Yapılar İçinde Diziler

Bir statik dizi, bir yapının üyesi olarak bildirildiğinde dinamik dizi nesnesi oluşturulmaz. Bu, Windows API'de kullanılan veri yapıları ile uyumluluk oluşturmak için düşünülmüştür.

Ama yapı üyesi olarak bildirilen statik diziler MQL5 programlarına da geçirilebilirler. Bu durumda, parametre geçilirken statik dizi ile bağlantılı bir geçici dinamik dizi nesnesi (yapı üyesi) oluşturulur.

Ayrıca Bakınız

Dizi Fonksiyonlar, Değişkenlerin Başlatılması, Değişkenlerin Görünürlük Alanları ve Ömürleri, Nesnelerin Oluşturulması ve Silinmesi