2016-05-01 11 views
0

Hallo ich zu C sind sehr neu ++ und haben in ganz ein Problem stoßen, so habe ich eine einfache Funktion geschrieben einen Spieler x zurückzukehren, y & z Herkunft, hier ist sie:Return const float * Probleme

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

das Problem ist, dass ich einen Fehler zu sagen:

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

ich kann nicht scheinen, um herauszufinden, was mache ich falsch, irgendwelche Vorschläge?

+0

Warum wollen Sie einen rohen Zeiger zurück? Ein 'Vector3' sieht viel passender aus. –

Antwort

1

Unter Berücksichtigung der Kommaoperatoren entspricht (float)((Orgx), (Orgx), (Orgx))(float)Orgx. float stimmt nicht mit float* überein, daher ist der Fehler aufgetreten.

Sie sollten Array zuordnen wollen statisch

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

    return Org; 
} 

oder dynamisch

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

    return Org; 
} 
+0

Danke! Funktioniert super! – C0d1ng