如何将 64 位无效指针转换为 32 位无效指针

How to convert 64bit void pointer into 32bit void pointer?

本文关键字:指针 无效 转换      更新时间:2023-10-16

我有一个缓冲区(包含音频数据),它是空指针。在 32 位系统中,它的大小为 4 字节,在 64 位系统中,它的大小为 8 字节。那么如何在不丢失任何数据的情况下将 64 位无效指针转换为 32 位无效指针呢?

只要 64 位指针中的值加上缓冲区的大小小于 2^32就可以只使用指针的下部 32 位。例如uint32_ptr ptr32 = static_cast<uint32_ptr>(ptr64) .但是,弄乱这样的指针并不是最佳做法。

此外,我假设您将在同一台计算机上的同一进程中使用这些指针。任何其他应用程序都将失败!