C'de dizimin boyutunu nasıl belirleyebilirim?
C'de dizimin boyutunu nasıl belirleyebilirim?
Yani, dizinin tutabileceği eleman sayısı?
894
3
C'de dizimin boyutunu nasıl belirleyebilirim?
Yani, dizinin tutabileceği eleman sayısı?
Yönetici özeti:
Tam cevap:
Dizinizin boyutunu bayt cinsinden belirlemek için
sizeof
Operatör:Bilgisayarımda, ints 4 bayt uzunluğundadır, yani n 68'dir.
Dizideki eleman sayısını belirlemek için dizinin toplam boyutunu dizi elemanının boyutuna böler. Bunu tür ile şu şekilde yapabilirsiniz:
ve doğru cevabı (68 / 4 = 17) elde edersiniz, ancak eğer 'a'yı değiştirmeyi unutursanız kötü bir hata ile karşılaşırsınız aynı zamanda
sizeof(int)
de olabilir.Dolayısıyla tercih edilen bölen
sizeof(a[0])
, yani dizinin sıfırıncı elemanı.Diğer bir avantajı ise artık kolayca parametrelendirebilmenizdir dizi adını bir makroda girin ve alın:
Şunu da belirtmek gerekir ki, `sizeof' işaretçiye dönüşmüş bir dizi değeri ile uğraşırken yardımcı olmaz: bir dizinin başlangıcını işaret etse bile, derleyici için bu dizinin tek bir elemanına işaret eden bir işaretçi ile aynıdır. Bir işaretçi, kendisini başlatmak için kullanılan dizi hakkında başka hiçbir şeyi "hatırlamaz".