прочитать двоичный файл в (c) файле, содержащем различные структуры, в которых указатель является членом - PullRequest
0 голосов
/ 16 апреля 2020

Извините, если это не очень хорошо объяснено. Я искал везде, где могу, но не могу найти решение. Я пытаюсь прочитать двоичный файл в c, но проблема в том, что он содержит много структур с зависимостями. Я знаю, как читать один тип структуры в переменную, но не в этом случае. Вот пример того, что я имел в виду под зависимостью между структурами:

typedef struct
{
    int a;
    int b;
} Car;
typedef struct
{
    char c[10];
    int d;
    Car* cars;
} Seller;
typedef struct
{
    int e;
    Seller* sellers;
} Maker;

При чтении я должен быть в состоянии связать каждый автомобиль с его продавцом и каждого продавца с его производителем.

1 Ответ

0 голосов
/ 16 апреля 2020

Вы прочтете каждый nested structures в отдельности.

Пример:

   Marker marker;
   fread(&marker.e, sizeof (int), 1, filePtr);

   marker.sellers = malloc(sizeof (*marker.sellers));
   fread(&marker.sellers->c , sizeof (marker.sellers->c), 1,filePtr);
   fread(&marker.sellers->d , sizeof (marker.sellers->d), 1,filePtr);

   marker.sellers->cars = malloc(sizeof (*marker.sellers->cars));
   fread(marker.sellers->cars, sizeof (*marker.sellers->cars), 1, filePtr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...