Menu
Coddy logo textTech

Null İşaretçiler

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası — ders 4 / 56.

Bir pointer tanımladığınızda, otomatik olarak anlamlı bir şeye işaret etmez. Başlatılmamış bir pointer rastgele bellek adresleri içerir ve bu durum, onu kullanmaya çalıştığınızda ciddi hatalara yol açabilir. İşte bu noktada, güvenli programlama için null pointer'lar temel bir gereklilik haline gelir.

Null pointer (boş gösterici), açıkça hiçbir şeyi işaret etmeyen bir göstericidir. Modern C++'da, bir null pointer'ı nullptr ile ilklendirerek oluşturursunuz:

int* ptr = nullptr;  // ptr artık bir null pointer'dır

nullptr anahtar kelimesi, işaretçinin herhangi bir geçerli bellek konumunu göstermediğini belirtir. Bu, bir işaretçiyi başlatılmamış bırakmaktan çok daha güvenlidir; çünkü bir işaretçinin başvurusunu çözmeye çalışmadan önce null olup olmadığını kontrol edebilirsiniz.

Herhangi bir işaretçiyi kullanmadan önce, basit bir if ifadesi kullanarak null olmadığını doğrulamalısınız:

if (ptr != nullptr) {
    // Burada *ptr kullanmak güvenlidir
    int value = *ptr;
}

Bu uygulama, programınızın geçersiz bellek konumlarına erişmesi nedeniyle çökmesini önler. İşaretçileri bildirdiğinizde her zaman nullptr ile başlatın ve dereferans işleminden önce null kontrolü yapın.

challenge icon

Görev

Kolay

İşaretçileri kullanmadan önce null olup olmadıklarını kontrol ederek güvenli işaretçi kullanımını gösteren bir program oluşturun.

Aşağıdaki girdi sağlanacaktır:

  • "valid" veya "null" olacak bir dize

Programınız şunları yapmalıdır:

  1. data adında bir tam sayı değişkeni tanımlayın ve bu değişkeni 42 değeriyle başlatın
  2. ptr adında bir işaretçi tanımlayın
  3. Eğer girdi "valid" ise, data değişkeninin adresini ptr işaretçisine atayın
  4. Eğer girdi "null" ise, ptr işaretçisine nullptr atayın
  5. ptr işaretçisini kullanmaya çalışmadan önce null olmadığını kontrol etmek için bir if-ifadesi kullanın
  6. Eğer işaretçi null değilse, işaret ettiği değeri yazdırın
  7. Eğer işaretçi null ise, bir güvenlik mesajı yazdırın

Aşağıdaki tam çıktı formatını kullanın:

Value: [value]

Null işaretçiler için şu formatı kullanın:

Pointer is null - cannot dereference

Kendin dene

#include <iostream>
#include <string>
using namespace std;

int main() {
    // Girdiyi oku
    string input;
    cin >> input;
    
    // Veri değişkenini tanımla
    int data = 42;
    
    // YAPILACAK: Kodunuzu buraya yazın
    // - ptr adında bir işaretçi tanımlayın
    // - Girdiyi kontrol edin ve ptr'ye uygun değeri atayın
    // - İşaretçiyi güvenli bir şekilde kontrol etmek ve kullanmak için if ifadesini kullanın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler