Boş işaretçisi

Bilgisayar biliminde boş işaretçi, sıfır referansı veya boş gösterici (), geçerli bir nesne adresini göstermeyen işaretçi ya da dolaylamaya verilen genel isimdir. Bir başka deyişle, değeri sıfır olan işaretçidir; yani bilgisayarın belleğinde geçerli olan bir adresi işaret etmemektedir. Bilgisayar programlarında, uzunluğu bilinmeyen bir listenin sonu veya bazı eylemlerin gerçekleştirilememesi gibi koşulları göstermek için rutin olarak boş işaretçiler kullanır; boş işaretçilerinin bu kullanımı, sıfırlanabilir tip veya opsiyonel bir veri tipi gibi düşünülebilir.

Boş işaretçi, değeri belirtilmemiş bir işaretçi ile karıştırılmamalıdır: Bir boş işaretçi, geçerli bir nesneyi işaret eden herhangi bir işaretçiden kesinlikle farklıdır. Öte yandan, programlama diline ve uygulamaya bağlı olarak, değeri belirtilmemiş bir işaretçi için aynı şeyi söylemek mümkün değildir. Bu nedenle, bir takım durumlarda değeri belirtilmemiş işaretçiler, diğer geçerli işaretçilerle eşit olabilir; veya boş işaretçilerle eşit olabilir. Her iki durum da farklı zamanlarda gerçekleşebilir veya karşılaştırma tanımsız davranışa neden olabilir.

 C 
C'de, her türden iki boş göstergenin eşit karşılaştırılması garanti edilir.ISO/IEC 9899, clause 6.3.2.3, paragraph 4. Önişlemci makro NULL, bir uygulama tarafından tanımlanan boş gösterici sabiti olarak tanımlanır.ISO/IEC 9899, clause 7.17, paragraph 3: NULL... which expands to an implementation-defined null pointer constant... C standardı, boş göstergenin bellek adresi işaretçisiyle aynı olduğunu söylemez   Ancak, pratikte durum bu olabilir. Bir boş gösterici deşifre etmek, CISO/IEC 9899, clause 6.5.3.2, paragraph 4. için tanımsız bir davranıştır.

Pratikte, bir boş göstergenin adresine erişmeye çalışmak ya da eşlenmemiş bellekten okuma veya yazma girişiminde bulunmak bir segmentasyon hatası veya bellek erişim ihlali tetikleyebilir. Bunu yapmak, programın çökmesine veya program kodu tarafından yakalanabilecek bir yazılım istisnasına dönüştürülebilir. Ancak, durumun böyle olmadığı bazı durumlar vardır. Örneğin, x86 gerçek modunda, 0000:0000 adresi okunabilir ve genellikle yazılabilirdir ve bu adrese bir işaretçinin kaydının kaldırılması, uygulamada tanımlanmamış ancak kilitlenmeyen davranışlara yol açabilecek mükemmel derecede geçerli ancak genellikle istenmeyen bir eylemdir.

C dilinde dinamik olarak bellek ataması (yaratma) yapmak için kullanılan metotlar da (calloc ve malloc gibi) kullanıldıkları zaman şayet başarılı bir şekilde boş bir bellek bölgesi yaratamazlarsa boş işaretçi return ederler.

 C++ 
C++ 'da, NULL makrosu C'den devralınırken, sıfır için bir tam sayı değişmez değeri geleneksel olarak bir boş işaretçi sabitini temsil etmek için kullanılmaktadır. Ancak, C++11 bunun yerine, açık boş işaretçi nullptr sabitini yazılımcıların kullanabilmesi için yaratmıştır.

 Tarih 
2009'da Tony Hoare (CAR Hoare), 1965 yılında ALGOL W dilinin bir parçası olarak sıfır referansını icat ettiğini belirtti. 2009 yılında, Hoare boş işaretçi buluşunun "milyar dolarlık bir hata" olarak tanımlamıştır.

 Kaynakça 

Kategori:Veri tipleri
Kategori:KB1 bakım: Birden fazla ad: yazar listesi