我有以下结构:
struct Layer
{
node fileInfo;
std::vector<int> fadePoints;
std::vector<int> syncPoints;
float vol;
PatternSet *pUp;
};
struct node
{
union{
struct{
std::string filename;
void *padding;
};
struct{
void *data;
unsigned int len;
};
};
};
当我保证节点将始终使用第一个未命名的结构时,我可以简单地使用fwrite()
保存图层结构,padding
始终是nullptr
而pUp
不是重要的(可以丢弃)?
我不确定向量是否可以这样保存。
答案 0 :(得分:3)
使用fwrite()时,保存数据的二进制表示 - 此函数不关心数据是什么。如果它是一个它不关心的联合 - 它只是从内存中保存字节。
你无法保存那样的向量,因为你要保存的只是一堆动态分配内存的指针。对于std :: string也是如此。