SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Boyut ile İndeks kontrolü arasındaki ilişkiyi açıklamak.
- “std::array ile ham işaretçi arasındaki önemli fark nedir?” sorusuna gerekçeli yanıt vermek.
- Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.
Çalışma mantığı ve güven sınırı
std::array boyutu türle ilişkilendirir ve at ile denetimli erişim sunar. Ham dizi işlev parametresinde işaretçiye dönüşebilir; boyutu ayrıca taşımak gerekir. Bir indeksi sadece negatif değil üst sınır açısından da değerlendirin. Dış girdiyi doğrudan bellek ofseti yapmak yerine kabul edilen aralıkla eşleyin.
Açıklamalı örnek
Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.
#include <array>
#include <iostream>
int main() {
std::array<int,3> ports{80,443,8080};
std::cout << ports.at(1);
}Beklenen sonuç ve yorumu
443 yazılır. at(3) geçersiz erişimi istisnayla bildirir.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| İndeks 0 | İlk eleman | Geçerli aralıktadır |
| İndeks size-1 | Son eleman | Üst geçerli sınırdır |
| İndeks size | Reddet | Eleman sonrasına işaret eder |
Uygulama görevi
0, 2 ve 3 indeksleri için davranışı açıklayın; hatayı kontrollü biçimde ele alın.
- İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
- Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
- Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.
Sık yapılan hata ve düzeltme yönü
Sınır dışı erişimin her zaman çökerek belli olacağını varsaymayın.
Kendinizi sınayın
std::array ile ham işaretçi arasındaki önemli fark nedir?
Açıklamalı yanıt: std::array boyutu korur; ham işaretçi tek başına kaç eleman bulunduğunu söylemez.
İlgili derslerle ilerleyin
- C++ break/continue: Akışı dar kapsamda değiştirme
- C++ struct: İlgili verileri bir sözleşmede toplama
- C++ for: İndeks ve aralık temelli yineleme
- C++ enum: Durumları güvenilir biçimde adlandırma
Teknik başvuru
Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.
