Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Anda Tentukan Saiz Tatasusunan yang Diperuntukkan dengan `baru` dalam C?

Bolehkah Anda Tentukan Saiz Tatasusunan yang Diperuntukkan dengan `baru` dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 10:30:02872semak imbas

Can You Determine the Size of an Array Allocated with `new` in C  ?

Menentukan Saiz Tatasusunan Diperuntukkan dengan yang baharu

Bolehkah anda mendapatkan saiz tatasusunan yang diperuntukkan dengan T[] baharu?

Soalan ini meneroka cabaran menentukan saiz tatasusunan C secara pemrograman yang diperuntukkan pada timbunan menggunakan operator baharu.

Mengapa ini Mencabar?

Tidak seperti tatasusunan yang diisytiharkan pada tindanan (int arr[256];), yang mempunyai saiz tetap yang diketahui semasa penyusunan, tatasusunan yang diperuntukkan dengan yang baru mempunyai saiznya ditentukan secara dinamik pada masa jalan. Ini bermakna pengkompil tidak dapat mengetahui saiz tatasusunan sedemikian semasa penyusunan, dan operator saiz bagi hanya mengembalikan saiz penuding itu sendiri.

Had Penyusun

saiznya ialah dinilai secara statik oleh pengkompil, bermakna ia tidak boleh digunakan untuk tatasusunan yang diperuntukkan secara dinamik. Selain itu, tatasusunan C bukanlah objek kelas pertama dan mereput menjadi penunjuk, menyukarkan pengkompil atau atur cara untuk membezakan antara penunjuk kepada permulaan tatasusunan yang diperuntukkan dan penunjuk kepada objek tunggal atau lokasi memori sewenang-wenangnya.

Pengetahuan Runtime

padam [] mengetahui saiz yang diperuntukkan, tetapi pengetahuan ini berada dalam masa jalan atau pengurus memori sistem pengendalian dan tidak boleh diakses semasa penyusunan.

Pertimbangan Pengurusan Memori

C dan C menyerahkan pengurusan memori kepada pengaturcara dan sistem pengendalian. Akibatnya, melaksanakan baharu dan padam adalah bergantung pada platform dan mungkin tidak melibatkan penjejakan saiz tatasusunan yang diperuntukkan. Pendekatan ini membolehkan pengurusan memori yang cekap dan fleksibel pada pelbagai sistem, tetapi ia mengorbankan keupayaan untuk mendapatkan saiz tatasusunan secara pemrograman.

Atas ialah kandungan terperinci Bolehkah Anda Tentukan Saiz Tatasusunan yang Diperuntukkan dengan `baru` dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn