Memahami Perbezaan antara delete dan delete[] Operator
Dalam C , delete dan delete[] operator memainkan peranan penting dalam pengurusan memori . Walau bagaimanapun, terdapat salah tanggapan umum mengenai kesetaraan mereka. Untuk menjelaskan perkara ini, mari kita terokai perbezaan antara operator ini.
delete_vs_delete[]
Operator padam digunakan secara khusus untuk mengagihkan objek tunggal yang diperuntukkan menggunakan operator baharu. Percubaan untuk menggunakan padam pada tatasusunan ialah tingkah laku yang tidak ditentukan dan boleh menyebabkan ranap program yang tidak dijangka.
Sebaliknya, pengendali padam[] direka untuk mengagihkan tatasusunan yang telah diperuntukkan menggunakan pengendali[] baharu. Menggunakan padam[] pada satu objek juga merupakan tingkah laku yang tidak ditentukan.
Pengesahan daripada Piawaian
Mengikut piawaian C (5.3.5/2), "Dalam alternatif pertama (padam objek), ... Jika tidak, tingkah laku tidak ditentukan." Ini menjelaskan bahawa menggunakan padam pada tatasusunan adalah tidak dibenarkan. Begitu juga, "Dalam alternatif kedua (padam tatasusunan), ... Jika tidak, tingkah laku tidak ditentukan." mengesahkan bahawa menggunakan padam[] pada satu objek juga dilarang.
Kesimpulan
Bertentangan dengan kepercayaan popular, padam dan padam[] bukanlah pengendali yang setara. Menggunakannya secara tidak betul boleh menyebabkan tingkah laku program yang tidak dapat diramalkan. Sentiasa ingat untuk menggunakan padam untuk objek tunggal dan padam[] untuk tatasusunan bagi memastikan pengurusan memori yang betul dan mengelakkan tingkah laku yang tidak ditentukan.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `delete` dan `delete[]` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!