【发布时间】:2015-12-20 15:10:14
【问题描述】:
如果这个问题之前被问过或者有一个我看不到的明显的解决方案,首先道歉。我发现了一个similar 的问题,但是我相信我所问的问题比之前所问的要更进一步。
我的结构如下:
typedef struct {
int id;
char *title;
char *body;
} journal_entry;
问:如何在不使用固定长度的情况下在 C(不是 C++)中编写和加载指向内存的指针的内容?
我是否错误地认为通过将title 或body 写入文件我最终会得到垃圾数据,而不是我存储的信息?我不知道日记条目的title 或body 的大小,并且大小可能因条目而异。
我自己的阅读表明我需要分别取消引用指针和fwrite 结构的每个部分。但是我不确定如何跟踪数据和结构,而不会使事情变得混乱,特别是对于较大的文件。此外,如果这些不是我打算存储在文件中的唯一项目(例如,我可能希望稍后包含小图像,我不确定如何为方便起见对文件结构进行排序。
另一个(可能被察觉的)问题是我在加载数据时使用malloc 为正文/条目的字符串分配内存,当我希望加载时如何知道为字符串分配多少内存再次进入?我是否需要扩展我的结构以包含int body_len 和int title_len?
我们将非常感谢您的指导或建议。
【问题讨论】:
标签: c pointers serialization struct