Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Saiz Tatasusunan dalam C Apabila Menggunakan Penunjuk?

Bagaimanakah Saya Boleh Mendapatkan Saiz Tatasusunan dalam C Apabila Menggunakan Penunjuk?

Patricia Arquette
Lepaskan: 2025-01-05 08:51:41
asal
287 orang telah melayarinya

How Can I Get the Size of an Array in C   When Using Pointers?

Mendapatkan Saiz Tatasusunan daripada Penunjuk dalam C

Apabila bekerja dengan tatasusunan dalam C , satu tugas biasa ialah menentukan saiz atau bilangan elemen dalam tatasusunan. Walau bagaimanapun, ini boleh menjadi rumit apabila mengakses tatasusunan melalui penuding.

Isu dengan Menentukan Saiz Tatasusunan daripada Penunjuk

Pertimbangkan pengepala fungsi berikut:

int largest(int *list, int highest_index);
Salin selepas log masuk

Fungsi ini direka untuk mengembalikan integer terbesar dalam tatasusunan integer. Masalah timbul apabila cuba menentukan bilangan elemen dalam tatasusunan 'senarai' menggunakan penuding.

Kaedah Salah

Beberapa kaedah salah yang telah dicuba termasuk:

int i = sizeof list/sizeof(int); //returns incorrect value
int i = list.size(); // does not compile
Salin selepas log masuk

Kaedah ini sama ada mengembalikan nilai yang salah atau tidak menyusun kerana mereka menganggap tatasusunan diketahui secara semula jadi dengan penunjuk.

Pendekatan Betul: Melepasi Saiz Tatasusunan sebagai Argumen

Pendekatan yang betul ialah menghantar saiz tatasusunan sebagai argumen tambahan kepada fungsi. Ini membolehkan fungsi menentukan bilangan elemen dalam tatasusunan.

Contohnya:

static const size_t ArraySize = 5;
int array[ArraySize];
func(array, ArraySize);
Salin selepas log masuk

Dalam contoh ini, fungsi 'func' mengambil penunjuk tatasusunan dan saiz tatasusunan sebagai argumen.

Rasional

C membenarkan tatasusunan mereput kepada penunjuk apabila diluluskan sebagai fungsi hujah. Walau bagaimanapun, penunjuk dengan sendirinya tidak mengandungi maklumat tentang saiz tatasusunan. Dengan menghantar saiz tatasusunan sebagai hujah, fungsi ini dapat menentukan bilangan elemen dalam tatasusunan dengan betul.

Kesimpulan

Apabila bekerja dengan tatasusunan melalui penunjuk, adalah penting untuk mempertimbangkan bahawa penunjuk tidak mempunyai maklumat yang wujud tentang saiz tatasusunan. Penyelesaiannya adalah dengan menghantar saiz tatasusunan sebagai hujah tambahan kepada fungsi yang memerlukan maklumat ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Saiz Tatasusunan dalam C Apabila Menggunakan Penunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan