Dalam program yang terstruktur dengan baik dengan pemeriksaan kesalahan yang sesuai, tidak ada alasan untuk tidak menetapkannya nol. 0
berdiri sendiri sebagai nilai tidak valid yang diakui secara universal dalam konteks ini. Gagal dan gagal segera.
Banyak argumen yang menentang penetapan 0
menunjukkan bahwa itu bisa menyembunyikan bug atau mempersulit aliran kontrol. Pada dasarnya, itu adalah kesalahan hulu (bukan kesalahan Anda (maaf untuk permainan buruk)) atau kesalahan lain atas nama programmer - bahkan mungkin indikasi bahwa aliran program telah tumbuh terlalu kompleks.
Jika programmer ingin memperkenalkan penggunaan pointer yang mungkin nol sebagai nilai khusus dan menulis semua yang perlu dihindari, itu adalah komplikasi yang sengaja mereka perkenalkan. Semakin baik karantina, semakin cepat Anda menemukan kasus penyalahgunaan, dan semakin sedikit mereka dapat menyebar ke program lain.
Program yang terstruktur dengan baik dapat dirancang menggunakan fitur C ++ untuk menghindari kasus ini. Anda dapat menggunakan referensi, atau Anda bisa mengatakan "meneruskan / menggunakan argumen nol atau tidak valid adalah kesalahan" - sebuah pendekatan yang sama-sama berlaku untuk wadah, seperti smart pointer. Meningkatkan perilaku yang konsisten dan benar mencegah bug ini dari jauh.
Dari sana, Anda hanya memiliki ruang lingkup dan konteks yang sangat terbatas di mana penunjuk nol mungkin ada (atau diizinkan).
Hal yang sama dapat diterapkan pada pointer yang tidak const
. Mengikuti nilai dari sebuah pointer adalah sepele karena cakupannya sangat kecil, dan penggunaan yang tidak benar diperiksa dan didefinisikan dengan baik. Jika perangkat dan insinyur Anda tidak dapat mengikuti program setelah membaca cepat atau ada pemeriksaan kesalahan yang tidak tepat atau aliran program tidak konsisten / lunak, Anda memiliki masalah lain yang lebih besar.
Akhirnya, kompiler dan lingkungan Anda mungkin memiliki beberapa penjaga saat Anda ingin memperkenalkan kesalahan (coretan), mendeteksi akses ke memori yang dibebaskan, dan menangkap UB terkait lainnya. Anda juga dapat memperkenalkan diagnostik serupa ke dalam program Anda, seringkali tanpa mempengaruhi program yang ada.
delete
Meskipun demikian, aman untuk pointer nol, yang merupakan salah satu alasan untuk mengarahkan pointer bisa baik.