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

Linda Hamilton
Lepaskan: 2024-11-12 10:07:01
asal
776 orang telah melayarinya

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;
Salin selepas log masuk

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;
Salin selepas log masuk

Ini membolehkan anda mengakses elemen dengan cara berikut:

mother[i][j] = solution[i][j]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan