Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?
Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk
Pertimbangkan senario berikut:
Activity solution[a][b]; // ... Activity **mother = solution;
Dalam situasi ini, anda mungkin ingin menukar tatasusunan objek 2D menjadi penuding-ke-penunjuk. Walau bagaimanapun, penukaran langsung tidak mungkin disebabkan oleh jenis yang tidak serasi.
Memperkenalkan Tatasusunan Perantara
Untuk merapatkan jurang, perkenalkan tatasusunan "indeks baris" perantaraan:
Activity solution[a][b]; Activity *solution_rows[a] = { solution[0], solution[1] /* and so on */ }; Activity **mother = solution_rows;
Ini membolehkan anda mengakses elemen dengan cara berikut:
mother[i][j] = solution[i][j]
Memahami Penukaran
penyelesaian[i] ialah penunjuk ke baris ke-i tatasusunan 2D. solution_rows ialah tatasusunan penunjuk baris ini. Oleh itu, solution_rows[i] bersamaan dengan solution[i].
Apabila anda memberikan solution_rows kepada ibu, anda dengan berkesan mencipta penunjuk-ke-penunjuk yang menunjuk kepada elemen pertama setiap baris dalam penyelesaian.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!