Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah `padam[]` Mengetahui Saiz Tatasusunan Yang Dipadamkannya?
Padam[] dan Pengesanan Tatasusunan
Dalam C , padam[] digunakan untuk memadam tatasusunan yang diperuntukkan menggunakan[] baharu. Walau bagaimanapun, bagaimanakah sistem mengetahui bahawa penunjuk menunjuk kepada tatasusunan?
Penyusun dan Sistem Pengendalian
Walaupun soalan asal menunjukkan bahawa bahasa atau pengkompil tidak mengetahui jenis penunjuk, realitinya lebih bernuansa. Pengkompil tidak tahu sama ada penunjuk ialah tatasusunan atau penunjuk elemen tunggal. Walau bagaimanapun, sistem pengendalian (OS) boleh menjejaki jenis peruntukan yang dibuat dengan baharu.
Pengurusan Memori
Apabila tatasusunan diperuntukkan menggunakan baharu[], memori diperuntukkan bukan sahaja untuk elemen tatasusunan tetapi juga untuk metadata yang merangkumi saiz tatasusunan. Metadata ini disimpan dalam pengepala sebelum elemen tatasusunan. Apabila padam[] digunakan, OS menyemak pengepala ini untuk menentukan saiz tatasusunan.
Elemen Tunggal lwn Tatasusunan
Dalam kes di mana satu elemen diperuntukkan menggunakan baru (seperti int* num = new int(1);), tiada metadata ditambahkan. Oleh itu, apabila deleteForMe(num); dipanggil, OS hanya memadamkan satu int.
Atas ialah kandungan terperinci Bagaimanakah `padam[]` Mengetahui Saiz Tatasusunan Yang Dipadamkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!