所以首先我创建我的结构:
struct interest *p =malloc(256);
并在结构体中分配变量:
p -> num = 1;
p -> size = 2;
p -> name = "jacky";
打开输出文件后,我向其中写入以下结构:
fwrite(&p,sizeof(p), 1, output_file);
这是我的第一个问题,如果我想写一个struct p,把它写成“&p”正确吗?
假设我已经成功编写了它,并且我想知道从我的输出文件中读取结构。 然后我继续:
...#open the outputfile for reading
struct interest *buff = malloc(256);
fread(&buff, sizeof(buff),1,output_file);
当我尝试打印 buff 的编号或大小时,出现段错误..
什么 正确的做法是吗?
我想打印它的原因是因为我想检查我是否真的将该结构写入了输出文件。
谢谢。
最佳答案
首先,你应该做
p = malloc(sizeof(struct interest))
其次,p
和buff
已经是指针了,你应该这样写:
fwite(p, sizeof(struct interest), fp)
fread(buff, sizeof(struct interest), fp)
最后,要复制字符串,您应该编写
<string.h>
strncpy(p->name, "jacky", sizeof(p->name))
关于c - 在 C 中写入和读取结构体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717271/