Rumah >pembangunan bahagian belakang >C++ >Bolehkah C `new int[0]` Memperuntukkan Memori Kosong, dan Jika Ya, Apakah Implikasinya?
Sudut Rasa ingin tahu: Memperuntukkan Memori Kosong dalam C
Dalam bidang pengaturcaraan C, persoalan yang menarik timbul: Bolehkah kita memperuntukkan memori untuk blok kosong, diwakili oleh int baharu[0].
Pemerhatian daripada Ujian Aplikasi
Aplikasi ujian mudah yang mencetak hasil int baharu[0] mendedahkan output 0x876c0b8, menunjukkan bahawa memori sememangnya diperuntukkan.
Menyelam ke dalam Standard
Piawaian C menyediakan panduan tentang perkara ini perkara:
Pertimbangan Tambahan
Foot-Note Insights
Nota kaki yang menarik daripada 3.7.3.1/2 mendedahkan bahawa niatnya adalah untuk membolehkan pelaksanaan operator new() menggunakan sama ada malloc() atau calloc(), yang berkelakuan serupa berkenaan dengan permintaan bersaiz sifar. Walau bagaimanapun, C berbeza daripada C dengan memerlukan permintaan bersaiz sifar untuk mengembalikan penunjuk bukan nol.
Atas ialah kandungan terperinci Bolehkah C `new int[0]` Memperuntukkan Memori Kosong, dan Jika Ya, Apakah Implikasinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!