C++ 将二进制数组转换为类

标签 c++ class casting

如何将二进制数组转换为已知类?

本质上我有一个字节数据数组,如下所示:

unsigned char * buff[sizeof(MyClass)];

我对每个字节使用unsigned char,因为我假设它的长度为 1 个字节。

如何将此数组转换为我所知道的数据表示的内容?我已经从 MyClass 的内存中获取了数据,并将其放入此缓冲区中 - 现在我需要将其转换回 MyClass

我见过reinterpret_cast,但我不确定它是否适用于此。

最佳答案

unsigned char* buff[sizeof(MyClass)]unsigned char* 的数组,这可能是 48比你预期的大几倍。 (分别是 32 位和 64 位平台,但有些架构甚至具有不同的指针大小 - 挑剔保护)

回答问题的选角部分,reinterpret_cast<T*>(buff)会将 block 处理为 T* .

关于C++ 将二进制数组转换为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20914390/

相关文章:

c++ - 在 Buck 中,如何使用 genrule 的输出作为 cxx_library 的 header ?

java - 将对象转换为作为参数传递的类类型

c# - 如何在控制台打印类属性?

c++ - typedef, enum, bool, Bool ------混淆

c# - 将System.Type强制转换为特定的类

sql - REGEXP_SUBSTR 转换后的输出未转换为整数

C++ MVC 模型到 viewmodel "translation"和继承

c++ - 使用 C++ 实现 QuickSort 的问题

c++ - boost ASIO : connection rejected on someURL's

c++ - 保存命令行参数并对其进行类型转换