【发布时间】:2016-08-15 13:19:08
【问题描述】:
我正在尝试从我的 ODE(开放动态引擎)模拟中返回身体对象的浮点 x、y 和 z 角度值。
float* Creature::eulerAngles(const float &q0, const float &q1, const float &q2, const float &q3){
float angles[3] = {atan2(2 * (q0*q1 + q2*q3), 1 - 2 * (q1*q1 + q2*q2)),
asin( 2 * (q0*q2 - q3*q1)),
atan2(2 * (q0*q3 + q1*q2), 1 - 2 * (q2*q2 + q3*q3))};
return angles;
}
因为dBodyGetQuaternion 返回 4 个 const float 四元数,所以我需要进行旋转,而且我很难编译它。现在它确实编译了,但我收到了这个警告。
谁能给我解释一下为什么以及这意味着什么?
【问题讨论】:
-
错误信息很清楚。您正在返回
angles的地址,但在您返回后,angles不再存在。那么调用者应该如何处理一个不再存在的对象的地址呢? -
好的,感谢您的整理:)
标签: c++ arrays function pointers return