【发布时间】:2014-01-21 05:37:55
【问题描述】:
如果我将内存位置的地址存储在变量中,即uint64_t 用于 64 位系统上的 8 字节指针,我可以使用存储在 uint64_t 中的值来创建指向它持有的内存位置?
struct Node { .. };
Node* node = new Node(5);
uint64_t addr = (uint64_t)static_cast<void*>(&node); // 8 byte pointer
例如node的地址是0x7fff76bb4880,addr存储140735185373312(dec表示),我想要一个新的指针Node* new_ptr = (Node*)0x7fff76bb4880。
我意识到这将是特定于平台的。
【问题讨论】: