C Array Return from Function
Apabila bekerja dengan tatasusunan dalam C , adalah penting untuk memahami had yang dikenakan oleh tatasusunan terbina dalam. Dalam artikel ini, kami akan meneroka isu mengembalikan tatasusunan daripada fungsi dan menyediakan pendekatan alternatif menggunakan bekas perpustakaan standard.
Masalah:
Seorang pengguna ingin membaca tatasusunan ke dalam fungsi, manipulasinya dalam fungsi, dan kemudian kembalikan tatasusunan yang diubah suai. Walau bagaimanapun, pengguna menghadapi kesukaran dengan penunjuk dan memahami cara mendekati tugas ini dengan berkesan.
Penyelesaian:
Mengembalikan tatasusunan terbina dalam daripada fungsi tidak disokong dalam C . Sebaliknya, anda harus menggunakan tatasusunan dinamik atau bekas perpustakaan standard seperti vektor atau boost::array.
Pendekatan Alternatif:
1. Vektor Standard:
std::vector
std::vector<int> myfunction(const std::vector<int>& my_array) { // Modify vector return my_array; }
2. Boost::array:
Jika anda memerlukan tatasusunan saiz tetap, boost::array menyediakan fungsi ini. Sama seperti vektor, anda boleh mengubah suai tatasusunan dalam fungsi dan mengembalikannya:
boost::array<int, 2> myfunction(const boost::array<int, 2>& my_array) { // Modify array return my_array; }
Nota: Perlu diingat bahawa kod yang disediakan dalam soalan asal mempunyai pepijat. Tatasusunan my_array ditakrifkan sebagai mempunyai satu elemen tetapi diakses dengan dua. Ini adalah ralat di luar sempadan, kerana tatasusunan bermula pada indeks 0 dan memanjang ke indeks N-1.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Tatasusunan Terubah Suai daripada Fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!