penyalahgunaan umum NULL
dalam C batang dari salah faham tujuannya dan bagaimana ia berinteraksi dengan penunjuk dan jenis data lain. Satu kesilapan yang kerap adalah mengandaikan NULL
bersamaan dengan sifar untuk semua tujuan. Walaupun NULL
sering dilaksanakan sebagai nilai integer 0, merawatnya semata -mata sebagai integer boleh membawa kepada masalah. Sebagai contoh, membandingkan NULL
ke 0
mungkin berfungsi dalam beberapa konteks, tetapi bergantung pada penukaran tersirat ini berisiko, terutama di seluruh pengkompil atau seni bina yang berbeza. Satu lagi penyalahgunaan gagal untuk memeriksa secara jelas NULL
sebelum menghancurkan penunjuk. Ini adalah sumber klasik kesalahan segmentasi, kerana cuba mengakses memori di alamat 0 (atau apa sahaja NULL
ditakrifkan sebagai) hampir selalu tidak sah. Akhirnya, permulaan penunjuk yang tidak betul adalah sumber kesilapan yang ketara. Penunjuk yang diisytiharkan tetapi tidak dimulakan mungkin menunjuk ke lokasi memori yang tidak dapat diramalkan, yang membawa kepada tingkah laku yang tidak dijangka atau kemalangan apabila diturunkan. Kegagalan untuk menetapkan petunjuk kepada NULL
selepas membebaskan memori yang diperuntukkan secara dinamik juga membawa kepada "penunjuk menggantung," keadaan berbahaya yang boleh menyebabkan kemalangan atau rasuah data kemudian dalam pelaksanaan program.
NULL
Pointers: Ini adalah kesilapan yang paling biasa dan menghancurkan. Percubaan untuk mengakses nilai pada alamat penunjuk NULL
hampir pasti akan membawa kepada kesalahan segmentasi dan kemalangan program. Pengkompil tidak menghalangnya; Ia adalah tanggungjawab pengaturcara untuk memastikan bahawa penunjuk tidak NULL
sebelum dereferencing menggunakan pengendali *
. Mengabaikan nilai pulangan ini dan meneruskan seolah -olah peruntukan berjaya adalah resipi untuk bencana. Sentiasa periksa nilai pulangan fungsi -fungsi ini dan mengendalikan kes NULL
atau alamat memori yang sah. Ini menghalang penggunaan secara tidak sengaja penunjuk yang tidak dikenali. Gunakan NULL
Jangan biarkan program kemalangan apabila penunjuk ditemui. Sediakan mesej ralat yang bermaklumat, kesilapan log, dan pertimbangkan strategi alternatif (mis., Menggunakan nilai lalai, operasi semula, atau keluar dengan anggun). Pernyataan membantu menangkap kesilapan awal dan menghalang mereka daripada menyebarkan melalui kod. Ini meningkatkan kebolehbacaan dan kebolehkerjaan kod. Sentiasa semak nilai pulangan, elakkan bebas dua kali, dan cegah kebocoran memori. Sepasang mata segar sering dapat melihat masalah penunjuk yang mungkin anda terlepas. Alat analisis statik juga boleh membantu mengenal pasti isu -isu yang berpotensi.Atas ialah kandungan terperinci Apakah penyalahgunaan null dalam bahasa c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!