Я хочу записать структуры в двоичный файл в программе A, а затем прочитать из него в программе B, которая печатает структуры.Тем не менее, я получаю неправильный вывод.
Я пробовал fwrite в программе A и fread в программе B, а затем распечатывал вывод, используя printf, только чтобы получить строку бессмысленных чисел.
Программа A:
#include <stdio.h>
#include <stdlib.h>
struct record
{
int index;
char name [100];
int age;
};
int main ()
{
struct record *one=malloc(sizeof(struct record));
FILE *in=fopen("records.bin", "ab+")l
fgets(one->name, 100, stdin);
one->index=100;
one->age=50;
fwrite(&one, sizeof(struct record), 1, in);
fclose(in);
}
Программа B (все заголовки и структура одинаковые со следующим кодом):
int main ()
{
FILE *in=fopen("records.bin", "rb+");
struct record array;
fread (&array, sizeof(struct record), 1, in);
printf ("%d\n", array.index);
printf ("%s\n", array.name);
printf ("%d\n", array.age);
fclose(in);
}
Я ожидал, что результат будет
100
j
50
Но фактический результат равен 172400800