eine frage zu reinterpret castvon int* zu long



  • ich hab ne frage, und zwar ist es sicher,so zu casten?

    int* a=new int;
    long b=reinterpret_cast<long>(a);
    int* c=reinterpret_cast<int*>(b);
    

    das der stil nicht unbedingt der beste sein sollte ist klar, aber konvertiert reinterpret cast so richtig? irgendwie hab ich ein ungutes gefühl, wenn ich sowas machen muss^^



  • otze schrieb:

    ich hab ne frage, und zwar ist es sicher,so zu casten?

    int* a=new int;
    long b=reinterpret_cast<long>(a);
    int* c=reinterpret_cast<int*>(b);
    

    das der stil nicht unbedingt der beste sein sollte ist klar, aber konvertiert reinterpret cast so richtig? irgendwie hab ich ein ungutes gefühl, wenn ich sowas machen muss^^

    code ist ok und läuft auf deiner maschine gut.

    code kippt erst, wenn long die länge ändert, bald ist er ja 64-bit groß und die zeiger bleiben auf 32 bit. dann ist er zwar noch ok, aber nicht so toll. oder werden die zeiger länger und long bleibt kurz? dann ist er falsch.

    ich regle das inzwischen so, daß ich mir mit nem kleinen metaprog einen unsigned typ raussuche, der genau sizeof(void*) hat und mit nem typedef zu meinem typ mache, den ich statt long nehme.


Anmelden zum Antworten