gpt4 book ai didi

c++ - 如何将内存地址存储为整数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:03 24 4
gpt4 key购买 nike

这与找到的问题标题完全相同 here - 我还想将内存地址存储在变量中 - 或者更确切地说,将 void* 存储在变量中。但是,我宁愿将它存储在某种形式的 int 而不是 string 中,因为我想之后将其转换回指针。

这是因为它是我想用 boost serialize 序列化的类的成员,如果我确实使用了 void*,boost serialize 可能会尝试存储指针是什么指向,这对我来说不是很明智。

我需要这个用于 32 位和 64 位 gcc 和 MSVC,所以基本上我想知道是否有一个内置的整数类型,它是同一平台上的指针大小。或者,我想我需要 IFDEF 我自己的类型?

最佳答案

intptr_tuintptr_t是足以容纳 void* 的整数类型.它们由 C++11 在 <cstdint> 中定义和 C99 在 <stdint.h>

如果uintptr_t不可用,您可以尝试uintmax_t ,在相同的 header 中定义或由 Boost 在 <boost/cstdint.hpp> 中定义.

关于c++ - 如何将内存地址存储为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235280/

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