cannot convert from 'float' to 'float *'



  • Hi,
    Ich habe ein Problem beim compilieren:

    float *speed = (float) sqrt(vel[0]*vel[0] +vel[1]*vel[1] + vel[2]*vel[2])*4;
    

    erzeugt die Fehlermeldung:

    cannot convert from 'float' to 'float *'
    

    Ich weis nicht, wie man float in float * umwandelt, wär nett wenn ihr mir helft : 😞
    Ich brauche allerdings 'speed' als float *, weil das für eine andere funktion gebraucht wird



  • ok 😃

    float *speed;
    //...
    (*speed) = 42.34f;
    //...
    sqrt(*speed);
    


  • Z.B. so.

    float *speed = new float((float) sqrt(vel[0]*vel[0] +vel[1]*vel[1] + vel[2]*vel[2])*4);
    

    Caipi



  • pausenmacher schrieb:

    ok 😃

    float *speed;
    //...
    (*speed) = 42.34f;
    //...
    sqrt(*speed);
    

    Das sollte aber einen Speicherzugriffsfehler verursachen...

    Caipi



  • für mich würde das ja dann:
    float *speed;
    (*speed) = vel[0]*vel[0] +vel[1]*vel[1] + vel[2]*vel[2];
    sqrt(*speed);
    heißen.
    laut compiler ist speed am ende aber ein normaler float, kein float *.
    und in meiner funktion brauche ich ja ein float *
    wenn ich speed nämlich in eine funktion einbaue, heißt es dann dort, er kann die nicht convertieren



  • Hallo??!

    float* ... = (float) ... // Schlag mal Hello World auf...  :rolling_eyes:
    

    GraFiX schrieb:

    Ich brauche allerdings 'speed' als float *, weil das für eine andere funktion gebraucht wird

    Dann nimm doch einfach vel, was hälst du davon? Ich kenn deinen (?) Code nicht, aber es hört sich an als willst du genau das haben (weißt aber nicht was es bedeuten soll).



  • GraFiX schrieb:

    Ich weis nicht, wie man float in float * umwandelt

    Ganz einfach, mit dem & Operator (AddressOf).

    float speed = sqrt(vel[0]*vel[0] + vel[1]*vel[1] + vel[2]*vel[2])*4;
    float* zeiger_auf_speed = &speed;
    


  • Verwende am besten nur dann Pointer, wenn du nicht mit Speicherallokaton/-deallokation rumhantierst, solange du dich nicht auskennst, sonst könnst ärgerlich werden. Als alternative, um die Daten beizubehalten gibts Referenzen.


Anmelden zum Antworten