İçeriğe geç
Başlangıç · Sonraki hedefe 100 XP
Son hareketler
Henüz bir öğrenme hareketi yok. İlk derse başlayın.

Programlama Temelleri

C++ işaretçileri: Adres ile sahipliği ayırma

İşaretçi bir nesnenin adresini tutabilir veya nullptr olabilir. Adresin bulunması o nesneye sahip olduğunuz ya da belleğin hâlâ geçerli olduğu anlamına gelmez.

Bu derste neler var?

SİBERSALDİRİ.COM · KONU ODAKLI DERS

Bu derste kazanacaklarınız

  • Nesne ile Adres arasındaki ilişkiyi açıklamak.
  • “İşaretçi ile sahiplik aynı şey midir?” 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ı

Dereference öncesi null denetimi gerekir; fakat silinmiş nesneye işaret eden dangling pointer null olmayabilir. Sahipliği mümkün olduğunca akıllı işaretçilerle ifade edin. Tek sahip için unique_ptr, paylaşılan sahiplik gerçekten gerekiyorsa shared_ptr değerlendirilir. Ham işaretçi çoğunlukla ödünç erişim sözleşmesiyle kullanılmalıdır.

C++ işaretçileri: Adres ile sahipliği ayırma akışı: Nesne → Adres → Ömür denetimi
Nesne → Adres → Ömür denetimi. Şema ilişkiyi gösterir; bütün uygulamanın yerine geçmez.

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 <iostream>
int main() {
 int value{7};
 int* pointer{&value};
 if (pointer) std::cout << *pointer;
}

Beklenen sonuç ve yorumu

7 yazılır; pointer yeni nesne oluşturmaz, mevcut value adresini taşır.

Karşılaştırmalı durumlar

DurumBeklenen yaklaşımNeden?
nullptrDereference etmeNesne adresi yoktur
Geçerli ödünç adresÖmür içinde kullanSahiplik devri değildir
Silinmiş nesne adresiKullanmaNull olmayabilir ama geçersizdir

Uygulama görevi

Değeri işaretçi üzerinden değiştirin ve asıl değişkenin sonucunu gözlemleyin.

  1. İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
  2. Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
  3. 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ü

Null kontrolünün dangling pointer sorununu çözdüğünü varsaymayın.

Kendinizi sınayın

İşaretçi ile sahiplik aynı şey midir?

Açıklamalı yanıt: Hayır. Sahiplik belleğin kim tarafından ve ne zaman bırakılacağını tanımlayan ek sözleşmedir.

İlgili derslerle ilerleyin

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.

Bir adım daha ilerlediniz.

Dersi bitirdiyseniz tamamlandı olarak işaretleyin. İlerlemeniz bu cihazda saklanır.

Akademi menüsü

Akademide ara

En az 2 karakter yazın.