【发布时间】:2011-11-09 16:06:36
【问题描述】:
我需要帮助从二进制文件中读取两个动态分配的向量。 最终会出现分段错误错误,但即使 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);
【问题讨论】:
标签: file file-io memory-management segmentation-fault