Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Tatasusunan Berbilang Dimensi kepada Penunjuk untuk Penyongsangan Matriks dalam C?
Menukar Tatasusunan Berbilang Dimensi kepada Penunjuk dalam C
Memandangkan tatasusunan berbilang dimensi yang diwakili sebagai dua kali ganda[4][4], matlamatnya adalah untuk menukar ia menjadi penunjuk berganda yang serasi dengan fungsi yang mengambil songsangan matriks.
Masalah:
Percubaan untuk menukar tatasusunan secara terus menggunakan (double**)startMatrix tidak menghasilkan hasil yang diingini.
Penyelesaian:
Memandangkan tatasusunan berganda[4][4] tidak serasi dengan penuding berganda , pendekatan alternatif adalah perlu.
Buat tatasusunan indeks sementara jenis berganda *[4] yang menghala ke permulaan setiap baris dalam tatasusunan asal:
<code class="c++">double *startRows[4] = { startMatrix[0], startMatrix[1], startMatrix[2], startMatrix[3] }; double *inverseRows[4] = { /* same thing here */ };</code>
Lepaskan tatasusunan indeks ini kepada fungsi sebaliknya:
<code class="c++">MatrixInversion(startRows, 4, inverseRows);</code>
Setelah penyongsangan selesai, hasilnya akan disimpan dalam tatasusunan inverseMatrix yang asal.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Tatasusunan Berbilang Dimensi kepada Penunjuk untuk Penyongsangan Matriks dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!