J'essaie l'approche suivante pour convertir une poignée d'annuler * puis revenir à la si je fais ça, gérer de la manière suivanteConversion uint64_t à void * et le dos
uint64_t hInt = 154071804376; //assume this is a valid memory location
void* hPoint = reinterpret_cast<void*>(hInt);
uint64_t hIntBack = *static_cast<uint64_t*>(hPoint); unable to recover hInt here, getting some other number 140727986249696
Cependant, je suis en mesure de récupérer le hInt
:
uint64_t hIntBack = reinterpret_cast<uint64_t>(hPoint)
Je ne suis pas sûr que je comprends la différence entre les deux approches.
'void * HDiriger = reinterpret_cast (Hint);' => 'void * HDiriger = reinterpret_cast (&hInt);' –
user0042
Question similaire à https://stackoverflow.com/questions/45657427/access-violation-casting-to-void-and-back –