我有一個結構,包含字符串。類似的東西:使用fread/fwrite作爲STL字符串。這是對的嗎?
struct Chunk { int a; string b; int c; };
所以,我想,我不能寫和使用的fread和fwrite功能從文件中讀取這個結構。因爲字符串可能保留不同的內存容量 但這樣的代碼正常工作。
Chunk var;
fwrite(&var, sizeof(Chunk), 1, file);
fread(&var, sizeof(Chunk), 1, file);
是否真的有它的一些問題?
除此之外,指針是POD,但通常不會很好地序列化。 –
謝謝@Ben,我的術語很寬鬆。 –
而且您仍然需要警惕POD類型的對齊問題。對於'struct s {uint8_t c; uint64_t d};''sizeof(struct s)'可能不是9. – user786653