以下作品:
void* p = reinterpret_cast<void*>(0x1000);
但是看起来“不正确/不安全”,例如0x1000是一个int
,甚至不是一个uintptr_t
,我可以解决这个问题,但是有没有更好/更安全的投射方法?
您可以使用自己的地址对其进行初始化,该地址不能为null:
void* p = &p;
0x1000是
int
,甚至不是uintptr_t
,我可以解决这个问题,但是有没有更好/更安全的投射方法
0x1000
为int
,并且在reinterpret_cast<void*>(0x1000)
中,编译器发出一个符号扩展指令(此处的符号为0),以使该值与void*
一样宽。