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);
セグメンテーション違反が発生します。
今、これはファイルから変数を読み取る正しい方法ではないと推測しています。このコードを機能させるのを手伝ってくれる人はいますか?