假设我有这个二进制数据:
'01 00 00 00' '02' '65 66 00' '05 00 00 00'
前4个字节是int
,序列中的另一个字节表示接下来要跟随的ASCII字符串的长度,在字符串后面还有另一个int
在010模板编辑器中,我可以做这样的结构,完全适合这个二进制数据:
struct Mapped{
int FirstInt;
byte StringLength;
char String[StringLength]; // compiler does not like this
int SecondInt;
};
但我不能用C ++做到这一点。我是我的代码,我只有一个char*
我想做:Mapped* friendlyData = (Mapped*)sourceBuffer;
然后访问该字符串以及其后的所有其他数据。
我该怎么做?我尝试使用std::string
而不是byte StringLength
和char String[StringLength]
的组合,但它也不起作用。
我该怎么做?