说我有
struct S{
int m[10];
};
我可以通过简单地使用:
轻松地将其保存到文件中S s;
file.write(reinterpret_cast<char*>(&s), sizeof(S));
但是如果我在struct中有动态数组怎么办?有没有更简单的方法将带有数组的结构保存到文件中,而不必迭代结构中每个数组中的每个元素?
struct S2{
int *p;
int *t;
};
答案 0 :(得分:2)
不,没有。并且不应该以您演示的方式写入文件。您应该始终单独序列化每个成员。
类和结构可能有填充。如果从一个版本的程序中写出结构并使用另一个版本的程序读取它,则结构大小和布局可能不对齐。如果您有跨平台应用程序,或者不同程序正在读取/写入此文件,则也是如此。单独序列化每个成员还可以在需要时为网络/跨平台目的交换字节序。