Мне нужна помощь в чтении двух динамически распределенных векторов из двоичного файла.
В конечном счете, возникает ошибка Сегментации, но векторы остаются заполненными нулями (иногда с нулями и "мусором"), даже когда fread () выполняется без проблем.
Вот код, который я использую, чтобы прочитать его:
struct Node *node;
node = (Node *) calloc(GRAPHSIZE,sizeof(Node));
int edgesSize = 2*GRAPHSIZE;
int *edges;
edges = (int *) calloc(edgesSize,sizeof(int));
FILE * file;
printf("\nLoading graph file...\n");
file = fopen ("graph1M.g","rb");
fread (&edges, edgesSize * sizeof(int),1,file);
fread (&node, GRAPHSIZE * sizeof(Node),1,file);
fclose(file);
И вот как они спасаются:
int edgesSize = 2*GRAPHSIZE;
struct Node *node;
node = (Node *) calloc(GRAPHSIZE,sizeof(Node));
int *Edges;
Edges = (int *) calloc(edgesSize,sizeof(int));
/* put data into the vectors... */
FILE *file;
//writes file:
file = fopen ("graph1M.g","wb");
fwrite (&Edges, edgesSize * sizeof(int),1,file);
fwrite (&node, GRAPHSIZE * sizeof(struct Node),1,file);
fclose(file);