Ramai pembangun mendapati diri mereka berada dalam situasi di mana mereka perlu menukar tatasusunan 2D kepada penuding- to-pointer dalam C . Penukaran ini tidak semudah yang kelihatan dan tiada cara langsung untuk mencapainya tanpa memperkenalkan langkah perantaraan.
Diberikan susunan objek 2D:
Activity solution[a][b];
Matlamatnya adalah untuk menukarnya menjadi penuding ke penuding perwakilan:
Activity **mother = solution;
Penukaran mudah daripada tatasusunan 2D kepada penuding-ke-penunjuk tidak akan berfungsi kerana ketidakserasian jenis. Untuk merapatkan jurang ini, tatasusunan "indeks baris" tambahan diperlukan sebagai langkah perantaraan:
Activity *solution_rows[a] = { solution[0], solution[1], /* etc. */ }; Activity **mother = solution_rows;
Kini, mengakses ibu[i][j] akan memberikan akses kepada penyelesaian[i][j]. Pendekatan ini mengekalkan semantik tatasusunan 2D sambil menyediakan perwakilan penuding ke penuding yang diperlukan.
Atas ialah kandungan terperinci Bagaimanakah anda Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!