c++ 将void*转int
时间: 2023-08-09 18:04:46 浏览: 293
将 `void*` 转换为 `int` 可以使用类型强制转换,但是这种转换可能存在问题,因为 `void*` 类型是指向任意类型的指针,而 `int` 类型的大小和指针类型可能不同,导致精度丢失和数据截断。
以下是将 `void*` 转换为 `int` 的示例代码:
```c++
void* ptr = // 指向某个内存地址的 void 指针
int i = reinterpret_cast<int>(ptr);
```
需要注意的是,这种转换可能会导致一些未定义行为,因为 `void*` 类型的指针可能不是按照 `int` 类型的对齐方式进行内存分配的。因此,最好不要将 `void*` 指针转换为整数类型,而是尽量使用指针类型来进行内存地址的操作。
阅读全文