0
바이너리 파일에서 두 개의 다이나믹 할당 벡터를 읽는 데 도움이 필요합니다. 결국 Segmentation Fault 오류가 발생하지만 fread()가 문제없이 완료된 경우에도 벡터는 0으로 채워집니다 (때로는 w/zero 및 "garbage"로 표시). 여기 바이너리 파일에서 동적 할당 벡터 읽기
내가 그것을 읽고 사용하는 코드입니다 :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);
Ty, 문제를 해결했습니다. 또한이 Valgrind를 살펴 보겠습니다. – Imperian