在 C 中將多維數組轉換為指標
在 C 中,多維數組與 double 指標不直接相容。當嘗試使用「顯而易見的方式」MatrixInversion((double)startMatrix, 4, (double)inverseMatrix) 將 double4 陣列轉換為 double 時,可能會出現錯誤。
原因在於多維數組和雙指標表示資料的不同方式。 double4 表示行優先形式的二維數組,而 double 表示 double* 指標數組,每個指標都指向數組中的一行。
要解決這種不相容性,可以修改函數的介面或作為參數傳遞的陣列結構。
修改陣列結構
要使現有的double4 陣列與函數相容,請建立臨時「索引」陣列double *[4] 類型,指向每個矩陣中每行的開頭:
<code class="cpp">double *startRows[4] = { startMatrix[0], startMatrix[1], startMatrix[2] , startMatrix[3] }; double *inverseRows[4] = { /* same thing here */ };</code>
傳遞這些「索引」陣列:
<code class="cpp">MatrixInversion(startRows, 4, inverseRows);</code>
此函數將正確放置結果存入原始inverseMatrix 陣列。
以上是如何在C中將多維數組轉換為指標進行矩陣運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!