У меня есть следующие структуры:
typedef struct {
char last[NAMESIZE];
char first[NAMESIZE];
} name;
typedef struct {
int id;
name name;
float score;
} record;
typedef struct {
record *data;
size_t nalloc;
size_t nused;
} record_list;
Я пытаюсь прочитать записи из файла, используя эту функцию:
int file_read(record_list *list, record* rec)
{
/* irrelevant code eliminated */
while(fread(&records, sizeof(record), 1, fp))
{
*rec = records;
valid_list_insert = list_insert(list, rec);
if(!valid_list_insert)
{
return 0;
}
}
}
и я пытаюсь записать record_list в файл, используя эту функцию:
int file_write(record_list* list)
{
/* irrelevant code eliminated */
if(fwrite(&list, sizeof(record_list), 1, fp) == 0)
{
return 0;
}
}
Однако ни один из них не работает правильно. fread считывает данные в случайном порядке, когда я пытаюсь отобразить список записей в моей программе. И fwrite просто записывает случайные символы в файл. Любая помощь о том, почему это не работает, будет принята с благодарностью.