在 C 中将多维数组转换为指针
在 C 中,多维数组与指针不直接兼容。当尝试使用采用 double** 的库函数时,使用简单的强制转换转换 double4 数组可能会导致错误。
要解决此问题,必须使数组适应函数的接口。不要将整个数组转换为 double**,而是创建指向每行开头的临时“索引”数组:
double* startRows[4] = { startMatrix[0], startMatrix[1], startMatrix[2], startMatrix[3] };
double* inverseRows[4] = { /* same pattern for inverseMatrix */ };
传递这些 " index" 数组作为参数传递给函数:
MatrixInversion(startRows, 4, inverseRows);
函数完成后,转换后的结果将正确驻留在 inverseMatrix 数组中。临时“索引”数组可以被丢弃。这种方法允许成功的基于指针的矩阵运算,而无需修改原始数组的结构或函数的接口。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3