Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?

Bagaimanakah anda Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?

Barbara Streisand
Barbara Streisandasal
2024-11-13 08:33:02453semak imbas

How do you Convert a 2D Array to a Pointer-to-Pointer in C  ?

Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C

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.

Pernyataan Masalah

Diberikan susunan objek 2D:

Activity solution[a][b];

Matlamatnya adalah untuk menukarnya menjadi penuding ke penuding perwakilan:

Activity **mother = solution;

Penyelesaian

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!

Kenyataan:
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