我有一个缓冲区(包含音频数据),它是无效指针。在32位系统中,它的大小为4字节,在64位系统中,它的大小为8字节。那么如何将64位无效指针转换为32位无效指针而不丢失任何数据呢?
答案 0 :(得分:0)
只要64位指针中的值加上缓冲区的大小小于2^32
,就可以使用指针的低32位。例如uint32_ptr ptr32 = static_cast<uint32_ptr>(ptr64)
。然而,乱用这样的指针并不是最好的做法。
此外,我假设您将在同一台机器上的同一进程中使用这些指针。任何其他应用程序都将失败!