C++'da nullptr nedir?

C Da Nullptr Nedir



C++'da, belirli bir işaretçi değeri olarak adlandırılan boş işaretçisi bir işaretçinin herhangi bir geçerli hafıza konumuna atıfta bulunmadığını belirtmek için kullanılır. C++ 11 standardı veya sonrasında, “anahtar kelimesiyle temsil edilir. nullptr ” veya 0 sabit değeri ile.

bu boş işaretçisi fikir çok önemlidir, çünkü beklenmedik çalışma zamanı hatalarına ve yazılım arızalarına neden olabilecek hatalı bellek erişimlerini önlemeye yardımcı olur. Bir programın, oluşturulmamış veya önceden tahsis edilmiş bir bellek adresinden okumaya veya bu adrese yazmaya çalıştığı senaryoyu düşünün. Bu davranış C++'ta tanımlanamaz ve ciddi çalışma zamanı sorunlarına veya güvenlik açıklarına neden olabilir. Bir işaretçi geçersizdir ve boş bir değere bağlanıyorsa başvurusu kaldırılmamalıdır. Program sonlandırmaları, segmentasyon hataları veya yetkisiz bellek erişimleri, bir programın başvurusu kaldırılırken meydana gelebilecek beklenmeyen davranışlardan yalnızca birkaçıdır. boş işaretçisi .

C++'da nullptr örneği

#include
kullanarak ad alanı std ;
int ana ( )
{
nullptr_t pi1, pi2 ;
eğer ( pi1 >= pi2 )
{
cout << 'İşaretçi 1, işaretçi 2 değerinden daha büyük' << son ;
}
başka
{
cout << 'İşaretçi 2, işaretçi 1 değerinden daha büyük' << son ;
}
karakter * ch = pi1 ;
eğer ( ch == nullptr )
cout << 'ch işaretçisi değişkeni, 0. adres referansıyla boş değere sahip' << son ;
başka
cout << 'ch işaretçisi değişkeni boş değer değil, adres referansıyla bir değeri var' << son ;
geri dönmek 0 ;
}

Yukarıdaki kodda iki tane kullanıyoruz nullptrs ve birbirleri ile karşılaştırılmasıdır. Ardından, doğrulamak için karakter işaretçisini kullanıyoruz. nullptr .







Çıktı



C++'da nullptr Kullanma Nedenleri

Boş göstericiler C++ programlamasında çeşitli nedenlerle sıklıkla kullanılır:



1: İşaretçileri Başlatma

Bir işaretçi değişkeni bildirildiğinde, her zaman geçerli bir bellek konumu veya boş işaretçisi . İşaretçiye daha sonra kodda erişildiğinde, bu, bildirilmemiş davranışların önlenmesine yardımcı olur.





2: Hata Kodu

Fonksiyonlar dönebilir boş işaretçiler belirtilen eylemi tamamlayamadıklarını veya bellek ayıramadıklarını göstermek için hata kodları olarak.

3: İşaretçinin Geçerliliğini Doğrulama

Referansını kaldırmadan önce işaretçinin geçerliliğini doğrulamak her zaman akıllıca bir fikirdir. Bu, kodun sağlamlığını artırır ve beklenmeyen çalışma zamanı hatalarını önlemeye yardımcı olur.



4: Polimorfizm

C++'da, türetilmiş sınıfların herhangi bir nesnesine işaret etmeyen temel sınıf işaretçileri şu şekilde temsil edilir: boş işaretçiler . Bu genellikle, kalıtım ve sanal işlevler gibi nesne yönelimli özellikleri işlemek için polimorfik programlamada kullanılır.

Boş göstericiler sarkan veya başlatılmamış işaretçilerle karıştırılmamalıdır, bunu hatırlamak çok önemlidir. Başlatılmamış işaretçiler, bir değerle başlatılmadıkları için bellekteki herhangi bir adresi işaret edebilir. Öte yandan sarkan işaretçiler, geçersiz veya önceden serbest bırakılmış bellek bölgelerine atıfta bulunan işaretçilerdir. C++ programlamasında sarkan işaretçiler ve başlatılmamış işaretçiler çalışma zamanı sorunlarına neden olma potansiyeline sahiptir.

C++'da nullptr Kullanmanın Avantajları

kullanmanın birkaç faydası vardır. nullptr .

1: Güvenlik

Çünkü nullptr NULL'dan daha güvenlidir, onun yerine kullanılmalıdır. NULL, basitçe sıfır değerine sahip bir tamsayı sabiti olarak tanımlanırken, nullptr yalnızca bir işaretçi türüne dönüştürülebilen ve başka bir türe dönüştürülemeyen bir işaretçi sabit değeridir.

2: Kullanılabilirlik

C++ programlamada, kullanmanın birçok yolu vardır. boş işaretçisi . Örnek olarak işaretçileri başlatmak, işlev çağrılarına parametreler göndermek veya işlevlerden işaretçi değerleri döndürmek olası kullanımlarından bazılarıdır. Bir işlev çağrısının veya eylemin meşru bir işaretçi değeri verip vermediğini belirlemek için de kullanılabilir.

3: Dinamik Bellek Ayırma

Dinamik bellek tahsisi, bir bilgisayarın en popüler kullanımlarından biridir. boş işaretçisi . C++'da new operatörü kullanılarak dinamik bellek tahsisi gerçekleştirilir. Yeni yöntem çağrıldığında, yeni oluşturulan nesneye bir işaretçi döndürülür. Yeterli belleğe sahip olmamak gibi herhangi bir nedenle ayırma başarısız olursa, NULL geri gönderilir. Sonuç olarak, atamanın başarılı olduğundan emin olmak için işaretçiyi kullanmadan önce dönüş değerini doğrulamak çok önemlidir.

Çözüm

bu boş işaretçisi C++ programlamasında bellekteki bir adresin eksik olduğunu gösteren bir mekanizma sağlayan önemli bir fikirdir. Geliştiriciler, aşağıdakileri kullanarak yazılım çökmelerini ve diğer sorunları önleyebilir: boş işaretçiler uygulamalarının hatalı bellek adreslerine erişmeye çalışmadığından emin olmak için. Bu nedenle, programcıların nasıl olduğunu anlamaları önemlidir. boş işaretçiler programlarında verimli bir şekilde kullanılmalı ve yapılmalıdır.