您将如何很好地表示字节数组及其大小?我想存储(在主内存或文件中)原始字节数组(无符号字符),其中前 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);
而且我可以访问字节数组的大小和数据部分。但它看起来仍然很丑。你能推荐另一种方法吗?