c语言中数组的左值,C – 无效使用非左值数组

我有一个矩阵结构:

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));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值