Bilgisayar biliminde boş işaretçi, sıfır referansı veya boş gösterici (İngilizce: Null pointer), 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ı, 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 duruma neden olabilir.
C
C'de, her türden iki boş göstergenin eşit karşılaştırılması garanti edilir. Önişlemci makro NULL
, bir uygulama tarafından tanımlanan boş gösterici sabiti olarak tanımlanır. 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, C 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++
'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
- ^ , clause 6.3.2.3, paragraph 4.
- ^ , clause 7.17, paragraph 3: NULL... which expands to an implementation-defined null pointer constant...
- ^ , clause 6.5.3.2, paragraph 4.
- ^ "Chapter 5:
Theconst
qualifier (§5.4) prevents accidental redefinition ofNULL
and ensures thatNULL
can be used where a constant is required.". . 14th printing of 3rd. United States and Canada: Addison–Wesley. Mart 2001. s. 88. - ^ "Null References: The Billion Dollar Mistake". InfoQ.com. 25 Ağustos 2009. 28 Ağustos 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Mayıs 2020.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bilgisayar biliminde bos isaretci sifir referansi veya bos gosterici Ingilizce Null pointer gecerli bir nesne adresini gostermeyen isaretci ya da dolaylamaya verilen genel isimdir Bir baska deyisle degeri sifir olan isaretcidir yani bilgisayarin belleginde gecerli olan bir adresi isaret etmemektedir Bilgisayar programlarinda uzunlugu bilinmeyen bir listenin sonu veya bazi eylemlerin gerceklestirilememesi gibi kosullari gostermek icin rutin olarak bos isaretciler kullanir bos isaretcilerinin bu kullanimi veya opsiyonel bir veri tipi gibi dusunulebilir Bos isaretci degeri belirtilmemis bir isaretci ile karistirilmamalidir Bir bos isaretci gecerli bir nesneyi isaret eden herhangi bir isaretciden kesinlikle farklidir Ote yandan programlama diline ve uygulamaya bagli olarak degeri belirtilmemis bir isaretci icin ayni seyi soylemek mumkun degildir Bu nedenle bir takim durumlarda degeri belirtilmemis isaretciler diger gecerli isaretcilerle esit olabilir veya bos isaretcilerle esit olabilir Her iki durum da farkli zamanlarda gerceklesebilir Veya karsilastirma tanimsiz duruma neden olabilir CC de her turden iki bos gostergenin esit karsilastirilmasi garanti edilir Onislemci makro NULL bir uygulama tarafindan tanimlanan bos gosterici sabiti olarak tanimlanir C standardi bos gostergenin bellek adresi isaretcisiyle ayni oldugunu soylemez Ancak pratikte durum bu olabilir Bir bos gosterici desifre etmek C icin tanimsiz bir davranistir Pratikte bir bos gostergenin adresine erismeye calismak ya da eslenmemis bellekten okuma veya yazma girisiminde bulunmak bir segmentasyon hatasi veya bellek erisim ihlali tetikleyebilir Bunu yapmak programin cokmesine veya program kodu tarafindan yakalanabilecek bir yazilim istisnasina donusturulebilir Ancak durumun boyle olmadigi bazi durumlar vardir Ornegin x86 gercek modunda 0000 0000 adresi okunabilir ve genellikle yazilabilirdir ve bu adrese bir isaretcinin kaydinin kaldirilmasi uygulamada tanimlanmamis ancak kilitlenmeyen davranislara yol acabilecek mukemmel derecede gecerli ancak genellikle istenmeyen bir eylemdir C dilinde dinamik olarak bellek atamasi yaratma yapmak icin kullanilan metotlar da calloc ve malloc gibi kullanildiklari zaman sayet basarili bir sekilde bos bir bellek bolgesi yaratamazlarsa bos isaretci return ederler C C da NULL makrosu C den devralinirken sifir icin bir tam sayi degismez degeri geleneksel olarak bir bos isaretci sabitini temsil etmek icin kullanilmaktadir Ancak C 11 bunun yerine acik bos isaretci nullptr sabitini yazilimcilarin kullanabilmesi icin yaratmistir Tarih2009 da Tony Hoare CAR Hoare 1965 yilinda ALGOL W dilinin bir parcasi olarak sifir referansini icat ettigini belirtti 2009 yilinda Hoare bos isaretci bulusunun milyar dolarlik bir hata olarak tanimlamistir Kaynakca clause 6 3 2 3 paragraph 4 clause 7 17 paragraph 3 NULL which expands to an implementation defined null pointer constant clause 6 5 3 2 paragraph 4 Chapter 5 The const qualifier 5 4 prevents accidental redefinition of NULL and ensures that NULL can be used where a constant is required 14th printing of 3rd United States and Canada Addison Wesley Mart 2001 s 88 Null References The Billion Dollar Mistake InfoQ com 25 Agustos 2009 28 Agustos 2009 tarihinde kaynagindan arsivlendi Erisim tarihi 8 Mayis 2020