如何将 64 位无效指针转换为 32 位无效指针
How to convert 64bit void pointer into 32bit void pointer?
我有一个缓冲区(包含音频数据),它是空指针。在 32 位系统中,它的大小为 4 字节,在 64 位系统中,它的大小为 8 字节。那么如何在不丢失任何数据的情况下将 64 位无效指针转换为 32 位无效指针呢?
只要 64 位指针中的值加上缓冲区的大小小于 2^32
就可以只使用指针的下部 32 位。例如uint32_ptr ptr32 = static_cast<uint32_ptr>(ptr64)
.但是,弄乱这样的指针并不是最佳做法。
此外,我假设您将在同一台计算机上的同一进程中使用这些指针。任何其他应用程序都将失败!
相关文章:
- 在 C++ 中传递字符串时指针无效
- free():仅在一种情况下指针无效
- free():实现矢量擦除()时的指针无效
- free():添加字符串时指针无效
- C++ ecliipse free():函数末尾的指针无效
- C++ 指针无效函数问题
- 将 boost::object_pool 与矢量一起使用时指针无效
- free():矢量 C++ 的指针无效<vec4i>
- omnet++free():指针无效,错误134/139
- 在OpenCV中调用stereoRectify会导致异常:帧指针无效
- 销毁和重新创建一个对象会使指向该对象的所有指针无效吗
- 用户定义类中的Null指针无效
- 删除指向类的指针无效
- 运行GTest时指针无效
- C++错误消息:指针无效
- 可以std::string reconfiguration使指向堆的指针无效
- 为什么删除指向指针向量的指针会导致指针无效
- MPI_scatter:缓冲区指针无效
- mmap 错误:分段错误/指针无效错误
- 返回 std::string 时指针无效(libc 如此说)