我有下面的结构再次反序列化它:结构序列化到文件,并用绳子
struct ArchiveTableEntry
{
uint32_t id;
char filename[MAX_FILENAME_LEN + 1];
uint32_t filename_crc32;
uint32_t real_data_size;
uint32_t block_data_size;
uint32_t data_crc32;
char data_md5_checksum[16];
uint64_t data_offset;
uint8_t flag;
};
和它系列化后,我有很好的输出到文件。 也从文件加载属性也。 我用的memcpy进行序列化/反序列化,而现在我的问题是:我如何可以替换字符的文件名[MAX_FILENAME_LEN + 1];由std :: string,并保持序列化/反序列化与保存未使用字节char char浪费。 谢谢!
'struct'字段可能是内存对齐填充的基础...使用适当的序列化机制来获得大小有效的输出(例如google protobuf)。 –