使用一維數組模擬二維矩陣存儲時,發現每行最後一個元素與下一行第一個元素相同,且數值異常增加 2。
// 錯誤的索引計算:a.row * i + j
a.pMat[a.row * i + j] = temp;
假設矩陣 3 行 4 列(row=3, col=4):
一維數組模擬二維矩陣,正確索引為:i * col + j(按行主序)。
// 正確寫法
a.pMat[i * a.col + j] = temp;
代碼中 生成矩陣B、顯示矩陣、矩陣相減 均存在相同索引錯誤,需統一修正。
修正索引後,矩陣生成、顯示、相減運算均正常,數據不再覆蓋錯亂。
核心教訓:二維轉一維索引務必使用 行號 * 列數 + 列號,切勿混淆行列變量。