Pointeradresse als long int*



  • Hallo,

    wie kann ich die Adresse eines Pointer in einem long int* speichern. Es geht nur um die Adresse als Zahl, das Objekt möchte ich danach nicht mehr verwenden.

    Gruß,
    Esco



  • void* somePointer = somePointerGenerator();
    
    unsigned long addr = reinterpret_cast<unsigned long>(somePointer);
    


  • Benutze doch einen Typ der auch groß genug ist: ptrdiff_t



  • C++-Progger schrieb:

    Benutze doch einen Typ der auch groß genug ist: ptrdiff_t

    ptrdiff_t ist ziemlich fies, siehe hier.



  • Tippgeber schrieb:

    ptrdiff_t ist ziemlich fies, siehe hier.

    Naja, aber das ist nicht unbedingt ein Problem von ptrdiff_t , sondern der Vermischung von signed und unsigned -Typen. Das kann auch ohne Zeiger passieren. Wenn man negative Differenzen in Kauf nimmt, muss man eben mit signed -Typen arbeiten oder zumindest casten.



  • Nexus schrieb:

    Tippgeber schrieb:

    ptrdiff_t ist ziemlich fies, siehe hier.

    Naja, aber das ist nicht unbedingt ein Problem von ptrdiff_t , sondern der Vermischung von signed und unsigned -Typen. Das kann auch ohne Zeiger passieren. Wenn man negative Differenzen in Kauf nimmt, muss man eben mit signed -Typen arbeiten oder zumindest casten.

    Exakt.
    Ziemlich peinlicher Blog eintrag...


Log in to reply