使用fwrite保存结构

时间:2014-10-24 21:02:13

标签: c++

我有以下结构:

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始终是nullptrpUp不是重要的(可以丢弃)?

我不确定向量是否可以这样保存。

1 个答案:

答案 0 :(得分:3)

  1. 使用fwrite()时,保存数据的二进制表示 - 此函数不关心数据是什么。如果它是一个它不关心的联合 - 它只是从内存中保存字节。

  2. 你无法保存那样的向量,因为你要保存的只是一堆动态分配内存的指针。对于std :: string也是如此。