バイト配列とそのサイズをどのように表現しますか? 最初の 2/4 バイトがそのサイズを表す生のバイト配列 (符号なし文字) を (メイン メモリまたはファイル内に) 格納したいと思います。しかし、そのような配列に対する操作は見栄えがよくありません。
void func(unsigned char *bytearray)
{
int size;
memcpy(&size, bytearray, sizeof(int));
//rest of operation when we know bytearray size
}
どうすればそれを回避できますか? 私は単純な構造について考えます:
struct bytearray
{
int size;
unsigned char *data;
};
bytearray *b = reinterpret_cast<bytearray*>(new unsigned char[10]);
b->data = reinterpret_cast<unsigned char*>(&(b->size) + 1);
また、bytearray のサイズとデータ部分にアクセスできます。しかし、それはまだ醜く見えます。別のアプローチをお勧めできますか?