我正在使用mmap,我有这样的代码:
void* mappedRegion;
mappedRegion = mmap( 0, 8192, PROT_READ| PROT_WRITE, MAP_SHARED, fd, 0 );
在C ++中是一个void指针正确的方法吗?为什么我们无论如何都需要一个void指针? mmap只是返回新映射的地址? int32_t会处理吗?
答案 0 :(得分:3)
是的,这是正确的方式,我们需要一个void*
,因为mmap
返回的是什么。
是的,返回值是"只是"指针,但无法保证int32_t
能够在重新解释后保留它。
BTW:您需要将其转换为适当的类型以便稍后存储您的对象,因为在不完整的类型上无法使用指针算法。
答案 1 :(得分:1)
不是mmap只返回新映射的地址吗?
是
地址是指针,而不是整数。