Dinamik Dizinin Boyutu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
d7new
Üye
Mesajlar: 20
Kayıt: 06 Eki 2014 10:55

Dinamik Dizinin Boyutu

Mesaj gönderen d7new »

Merhaba Arkadaşlar,

Delphi'ye yeni başladım ve diziler konusunda kafama takılan birkaç soru var onu sormak istiyorum.
Sabit dizi'de değer atamadığımız elemanlara (örn: dizinin 5. elemanına bir değer vermedim) Delphi rastgele sayı veriyor. Ve Sabit dizilerde boyutun dışına çıkamıyorsun. Örn: 7 elemanlı bir sabit dizi tanımladıysak 8. eleman diye bir şey söz konusu değil.
Dinamik dizi'de ise değer atamadığımız tüm elemanların değeri 0 oluyor. Ayrıca SetLength ile boyutlandırdığımız dizinin eleman sayısını geçebiliyoruz. Yani 10 elemanlı dediysem ben rahatlıkla 15. elemanı da ekranda göstertebiliyorum. (rastgele bir değer alıyor)

Bilmiyorum belki buraya kadar yazdıklarım Delphi'nin özelliğidir. Fakat neden böyle bir şey oluyor anlamış değilim yani neden Dinamik diziyi 10 elemanlı tanımlamışken 15., 20. elemanıda gösteriyor, hata vermiyor?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Dinamik Dizinin Boyutu

Mesaj gönderen sabanakman »

Değişken dediğimiz kavram aslında değerleri RAM bellekte adres yerini tutan takma isimlerdir. İşin aslı biz bir değişken ismini kullanırken RAM üzerinde (rakamsal) bir adres yerini işaret etmektedir. Dinamik diziler ise birden fazla değeri ardışık olarak tutmaktadır. İşi gerçek hayat ile ilişkilendirirsek, Şehirde yeni inşa edilmiş bir sokak varsayalım (evleri tek katlı bir ailelik düşünelim yoksa kafa karışıklığı çıkarabilir :D ). Burada (SetLength ile) 15 ailelik bir yer talep ettik ve bize bir cevap geldi. Artık bize gösterilen 15 evi dilediğimiz gibi kullanabiliriz ama tutar da 20. evden değer okumaya çalışırsak sorun olmaz (dolu veya boş) bir değer elde ederiz ama bize ait bir bölgeden gelmez bu değer. Sorun buraya biz bir aile yerleştirmeye çalışırsak ortaya çıkar, belki içeride başka amaçla başka bir aile vardır veya sonradan başka bir aile yerleştirilecektir. Bu da erişim hataları veya programın çökmesine sebep olabilir. O yüzden bu tür yapıları kullanırken dikkatli olmak ve hata yapmamak gerekmektedir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla