Neden't silmek NULL işaretçi kümesi değil mi?
Ben her zaman neden otomatik sonra NULL merak ettimsilstandart bir parçası değildir. Eğer bu o zaman halledilir alırsa çöker geçersiz bir işaretçi nedeniyle birçok ortaya çıkabilecek değil. Ama ben bunu söyledikten sonra standart bu kısıtlı olurdu nedeni var:
Performans:
Ek bir yönerge
delete
performansını yavaşlatabilir.
const
işaretçiler nedeniyle olabilir.Sonra yine standart sanırım bu özel durum için bir şey yapmış olabilir.
Kimsenin girmesine izin vermediği için gerçek nedeni tam olarak biliyor mu?
CEVAP
Stroustrup himself cevaplar. Bir alıntı:
C açıkça bir sağlar sıfır silme uygulaması umduğum lvalue işlenen ve uygulamaları o yapardı ama bu fikri yok gibi uygulayıcıları ile popüler hale gelmiştir.
Ama o tutarsa ana konu silmek savı bir lvalue olması gerekmez.
Güvenli bir NULL işaretçi silmek için ...
Neden adresi null işaretçi için kullan...
Neden varsayılan olarak't işaretç...
Neden boş >= 0 && null <= 0` ama...
Neden't GCC*****a (**)*(**) optim...