我在一本书中读了一个程序,其中我们必须使用 fread 和 fwrite 读取和写入结构到文件。
struct Address {
int id;
int set;
char *name;
char *email;
}
struct Database {
int rows; //number of rows
struct Address *row; //pointer to a row in the database
}
struct Connection {
FILE *fp;
struct Database *db
}
我为所有结构分配内存并初始化 id 的值,并在地址结构和数据库结构中的行中设置。
然后我将结构写入文件。
int fc = fwrite(conn->db, sizeof(*conn->db->row) * number + sizeof(int), 1, conn->fp);
if(fc != 1) printf("Error");
现在我正在尝试从文件中读取 conn->db->rows 的值
int fc = fread(&conn->db->rows, sizeof(int), 1, conn->fp);
我得到一个分段错误。
现在我猜这不是从文件中读取变量的正确方法。谁能帮我让这段代码工作?