Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menentukan Saiz Tatasusunan yang Dilalui sebagai Penunjuk dalam C?

Bagaimanakah Saya Boleh Menentukan Saiz Tatasusunan yang Dilalui sebagai Penunjuk dalam C?

Barbara Streisand
Lepaskan: 2024-12-04 06:42:12
asal
997 orang telah melayarinya

How Can I Determine the Size of an Array Passed as a Pointer in C  ?

Menentukan Saiz Tatasusunan dengan Penunjuk

Dalam C , apabila tatasusunan merosot kepada penuding, mengambil saiz tatasusunan daripada penuding boleh mencabar.

Masalah

Mencari saiz tatasusunan yang diluluskan sebagai penunjuk memerlukan tambahan maklumat, kerana penunjuk itu sendiri tidak mengandungi data ini.

Penyelesaian

Untuk menyelesaikan isu ini, dua pendekatan tersedia:

  1. Melepasi Maklumat Saiz sebagai Hujah: Hantar saiz tatasusunan sebagai parameter tambahan kepada fungsi. Contohnya:

    func(int* array, size_t arraySize);
    Salin selepas log masuk
  2. Menggunakan Sintaks Tatasusunan: Jika saiz tatasusunan diketahui terlebih dahulu, menghantarnya sebagai tatasusunan bersaiz tetap mencapai kesan yang sama:

    func(int array[5]);
    Salin selepas log masuk

Penjelasan

The peraturan pereputan penunjuk membenarkan tatasusunan berkelakuan seperti penunjuk, tetapi ini tidak membayangkan bahawa ia sememangnya penunjuk. Ia hanya mereput kepada penunjuk apabila diluluskan sebagai argumen fungsi.

Untuk menentukan saiz tatasusunan daripada penunjuk, maklumat saiz tambahan mesti disediakan. Ini boleh dicapai dengan menghantar saiz secara eksplisit sebagai hujah atau menggunakan sintaks tatasusunan, yang merangkumi maklumat saiz dalam pengisytiharan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Saiz Tatasusunan yang Dilalui sebagai Penunjuk dalam C?. 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