例如:
int* x = new int;
int y = reinterpret_cast<int>(x);y现在保存变量x的内存地址的整数值。变量y的大小为int。该int大小是否总是足够大以存储转换为int的任何类型的转换内存地址?
编辑:还是使用long int来避免数据丢失更安全?
编辑2:不好意思,为了让这个问题更容易理解,我想在这里了解的是返回的HEX值作为一个数字的大小,不是int的大小,也不是int的大小,而是普通的十六进制值。我需要用人类可读的表示法来得到这个值。这就是我使用reinterpret_cast将内存HEX值转换为DEC值的原因。但是为了安全地存储这个值,我还需要把它放入一个什么样的变量中: int,long -哪个类型足够大?
发布于 2012-01-05 02:55:02
在大多数64位目标上,int仍然是32位,而指针是64位,所以不能工作。
http://en.wikipedia.org/wiki/64-bit#64-bit_data_models
https://stackoverflow.com/questions/8737019
复制相似问题