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

Barbara Streisand
Lepaskan: 2024-11-13 08:33:02
asal
487 orang telah melayarinya

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

Matlamatnya adalah untuk menukarnya menjadi penuding ke penuding perwakilan:

Activity **mother = solution;
Salin selepas log masuk

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

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!

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