Mengembalikan Tatasusunan daripada Fungsi C
Mengembalikan tatasusunan daripada fungsi C tidak disokong secara langsung dalam bahasa. Walau bagaimanapun, terdapat beberapa teknik untuk mencapai kefungsian ini.
Satu pendekatan ialah mengembalikan penuding kepada tatasusunan yang diperuntukkan secara dinamik. Ini membolehkan anda mengembalikan tatasusunan dalam sebarang saiz, tetapi ia memerlukan pengurusan memori manual, yang boleh terdedah kepada ralat.
Pilihan lain ialah menggunakan bekas perpustakaan standard seperti std::vector atau std::array . std::vector boleh mengubah saiz dirinya secara dinamik mengikut keperluan, manakala std::array ialah saiz tetap. Dengan mengembalikan salah satu bekas ini, anda boleh menghantar tatasusunan mengikut nilai, mengelakkan isu pengurusan memori.
Berikut ialah contoh menggunakan std::array:
std::array<int, 2> myfunction(std::array<int, 2> my_array) { std::array<int, 2> f_array; f_array[0] = my_array[0]; f_array[1] = my_array[1]; // modify f_array some more return f_array; }
Sebagai alternatif, anda boleh menggunakan rujukan semantik untuk lulus tatasusunan dengan rujukan, mengelakkan keperluan untuk menyalin kandungannya. Walau bagaimanapun, pendekatan ini memerlukan pemanggil menyediakan tatasusunan yang sah kepada fungsi tersebut.
void myfunction(std::array<int, 2>& my_array) { my_array[0] = 10; my_array[1] = 20; } int main() { std::array<int, 2> my_array; myfunction(my_array); // Array is passed by reference std::cout << my_array[0] << " " << my_array[1] << std::endl; }
Apabila berurusan dengan tatasusunan, adalah penting untuk mempertimbangkan perkara berikut:
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengembalikan tatasusunan daripada fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!