C++ 我可以将mmap的结果存储为整数吗?
我正在使用mmap,我有如下代码:C++ 我可以将mmap的结果存储为整数吗?,c++,linux,C++,Linux,我正在使用mmap,我有如下代码: void* mappedRegion; mappedRegion = mmap( 0, 8192, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0 ); C++中的P>是一个空指针,正确的方法是这样做吗?为什么我们需要一个空指针呢?mmap不只是返回新映射的地址吗?int32能处理吗?是的,这是正确的方法,我们需要一个void*,因为这是mmap返回的 是的,返回值只是一个指针,但不能保证int32_t在重新解释后能够保存
void* mappedRegion;
mappedRegion = mmap( 0, 8192, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0 );
C++中的P>是一个空指针,正确的方法是这样做吗?为什么我们需要一个空指针呢?mmap不只是返回新映射的地址吗?int32能处理吗?是的,这是正确的方法,我们需要一个void*,因为这是mmap返回的 是的,返回值只是一个指针,但不能保证int32_t在重新解释后能够保存它 顺便说一句:您需要将其转换为适当的类型,以便以后存储对象,因为指针算法在不完整的类型上是不可能的 mmap不只是返回新映射的地址吗 对
地址是指针,而不是整数。mmap返回一个void*,因此无论您使用何种语言,这都是您在这里需要的。当然,void*可能是64位,因此使用较短的整数类型将是一个非常糟糕的主意。如果您希望portable codemmap不是C++11的东西,则不能假设返回的地址是固定位。好的,谢谢,我想知道是否应该以某种方式使用C++11 auto。在这种情况下,我真的不会这样做,尽管这不会造成伤害。