gpt4 book ai didi

c++ - 将存储在int中的内存地址分配给int

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:21 25 4
gpt4 key购买 nike

假设 uint32_t x 的值是一个地址。我怎样才能得到这个地址背后的值(value)?我的尝试是简单地将地址分配给一个指针。

int*y = x;

但是 x 不是一个 int 指针,它只是一个以地址为值的 int。

最佳答案

可以使用reinterpret_cast 或显式转换将大到足以表示所有数据指针的整数类型转换为指针。可以使用间接运算符将指针间接获取指向的值。

请注意,uint32_t 不能保证足够大以能够表示所有指针值(实际上在现代 64 位 cpu 上是不够的)。 uintptr_t 就是为了这个目的。

请注意,如果指向的地址不包含对象(兼容类型),则行为将是未定义的。

关于c++ - 将存储在int中的内存地址分配给int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com