结构似乎是解析二进制数据块(即文件或网络数据包)的有用方法。在 blob 中有可变大小的数组之前,这很好而且很花哨。例如:
struct nodeheader{
int flags;
int data_size;
char data[];
};
这使我可以找到最后一个数据字符:
nodeheader b;
cout << b.data[b.data_size-1];
问题是,我想要多个可变长度数组:
struct nodeheader{
int friend_size;
int data_size;
char data[];
char friend[];
};
我不是手动分配这些结构。我有一个像这样的文件:
char file_data[1024];
nodeheader* node = &(file_data[10]);
当我试图解析一个二进制文件(更具体地说是一个类文件)时。我已经用 Java 编写了一个实现(这是我的课堂作业),不,我正在用 C++ 编写个人版本,并希望无需编写 100 行代码就能摆脱困境。有任何想法吗?
谢谢,斯特凡