構造体は、データのバイナリ ブロブ (つまり、ファイルまたはネットワーク パケット) を解析するための便利な方法のようです。これは、ブロブに可変サイズの配列があるまでは問題ありません。例えば:
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行のコードを書かなくても済むことを望んでいました. 何か案は?
ありがとう、ステファン