假设我们有以下结构:写动态分配结构到文件
struct Something {
int i;
};
如果我想在一个文件中写入这种类型(动态分配),我这样做的任何数据:
struct Something *object = malloc(sizeof(struct Something));
object->i = 0; // set member some value
FILE *file = fopen("output_file", "wb");
fwrite(object, sizeof(struct Something), 1 file);
fclose(file);
现在,我的问题:
我们如何做到这一点与结构什么包含指针?我使用相同的方法测试,它工作正常,数据可以被读取,但我想知道是否有任何风险?
指针只在程序的特定实例中才有用。如果你将一个指针写入一个文件,那么稍后将它读回到其他进程中,这将只是一个随机数并且会导致严重问题 - 新实例的内存布局/使用情况将完全不同。 – 2015-02-06 19:00:00
如果您正在讨论像链接列表这样的结构,那么按照无指针的顺序编写数据。阅读时,您需要在读取数据后重新创建带有指针分配的列表。 – 2015-02-06 19:00:41