【发布时间】:2019-11-12 01:11:11
【问题描述】:
我是 C++ 新手,我正在使用 Arduino 平台。我正在为我的项目编写一个程序,有一次我需要将笛卡尔坐标系转换为圆柱坐标系。该程序接收一个大小为 3 的浮点数组并对其进行一些处理,然后返回一个大小为 3 的新浮点数组,其中包含另一个系统中的坐标。我不断收到错误“退出状态 1,无法将 'float*' 转换为 'float' 作为回报”,我完全不知道我的代码有什么问题或如何修复它。有人可以帮我了解发生了什么吗?
float CartesianToCylindrical (float pos[]){ //pos is in the form of [x,y,z]//
float cylpos[3];
cylpos[0] = sqrt((pos[0] ^ 2) + (pos[1] ^ 2));
cylpos[1] = atan(pos[1] / pos[0]);
cylpos[2] = pos[2];
return cylpos; //return in the form of [r,theta,z]//
【问题讨论】:
-
你不能返回一个数组。
-
你知道
operator ^是异或吗?它对您的浮点数有效吗? -
顺便说一句,
X * X比pow(X, 2)更有效。 -
记得检查
pos[0]是否有0。
标签: c++ arrays function arduino