返回const float *问题

时间:2016-05-01 05:28:22

标签: c++

您好我是C ++的新手并且遇到了很大的问题,所以我写了一个简单的函数来返回玩家x,y& z原点,这里是:

float Orgx, Orgy, Orgz;
const float* ReturnORG(Vector3 Blah)
{
    float Orgx = Blah.x;
    float Orgy = Blah.y;
    float Orgz = Blah.z;

    return (float)((Orgx), (Orgx), (Orgx));
} 

问题是我收到错误说:

"Error: return value type doesn't match function type"

我似乎无法弄清楚我做错了什么,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

考虑到逗号运算符,(float)((Orgx), (Orgx), (Orgx))等同于(float)Orgxfloatfloat*不匹配,因此发生了错误。

您应该想要静态分配数组

const float* ReturnORG(Vector3 Blah)
{
    static float Org[3];
    Org[0] = Org[1] = Org[2] = Blah.x;

    return Org;
}

或动态

const float* ReturnORG(Vector3 Blah)
{
    float *Org = new float[3];
    Org[0] = Org[1] = Org[2] = Blah.x;

    return Org;
}