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

Bagaimana untuk Menukar Tatasusunan 2D kepada Penunjuk-ke-Penunjuk dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-12 10:07:01776semak imbas

How to Convert a 2D Array to a Pointer-to-Pointer in 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!

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