我有一个矩阵结构:
typedef struct Matrix
{
float m[16];
} Matrix;
当我尝试调用此函数时:
memcpy(m->m, MultiplyMatrices(m, &translation).m, sizeof(m->m));
我在编译时遇到错误说:
error: invalid use of non-lvalue array
MultiplyMatrices返回一个矩阵.
如果我使用gcc将文件编译成对象,我只会收到此错误,
如果我使用g来编译对象我没有错误.
我甚至不确定错误意味着什么,我感觉它与存储在MultiplyMatrices返回的Matrix中的数组有关.
如果您需要查看更多代码,请告诉我们.
附:我想保持这段代码严格iso / ansi,如果没有其他解决方案,那么我只需处理它.
编辑:我最终创建一个临时矩阵然后复制数组.
Matrix tempMatrix;
...
tempMatrix = MultiplyMatrices(m, &translation);
memcpy(m->m, tempMatrix.m, sizeof(m->m));