C文件中的结构列表
我有一个结构简单的文本文件:C文件中的结构列表,c,pointers,struct,C,Pointers,Struct,我有一个结构简单的文本文件: Foo Bar C Joe Bob A ..... 我想读取这个文件并填充一个结构的“矩阵”,比如说一个指向该结构的指针列表。 我试过: typedef struct Test { char *A; char *B; char Res; }Test; int main() { FILE *fptr; int i; char A[10], B[10], res; Test **data =
Foo Bar C
Joe Bob A
.....
我想读取这个文件并填充一个结构的“矩阵”,比如说一个指向该结构的指针列表。
我试过:
typedef struct Test
{
char *A;
char *B;
char Res;
}Test;
int main()
{
FILE *fptr;
int i;
char A[10], B[10], res;
Test **data = malloc(5*sizeof(Test);
// allocate mem for each Struct
for(i=0; i<5; i++){
data[i] = malloc(sizeof(Test));
}
fptr = fopen("dati.txt", "r");
// let's say we have 5 records
for(i=0;i<5;i++) {
fscanf(fptr,"%s %s %c\n", &A, &B, &res);
data[i]->A = A;
data[i]->B = B;
data[i]->Res = res;
printf("\A: %s, B: - %s --> %d", data[i]->A, data[i]->B, data[i]->Res);
}
return 0;
}
typedef结构测试
{
char*A;
char*B;
char Res;
}试验;
int main()
{
文件*fptr;
int i;
字符A[10],B[10],res;
测试**数据=malloc(5*sizeof(测试);
//为每个结构分配mem
for(i=0;i您的数据[i]->A=A;
是指针。当您将A
分配给它时,您将分配指针,每次从文件中读取记录时,其数据都会被覆盖
必须为读取的数据分配内存,然后将数据复制到新内存中,例如:
data[i]->A = malloc(strlen(A)+1);
strcpy(data[i]->A,A);
data[i]->A=A;
将导致每次迭代覆盖以前的数据,您将只看到最后读取的值,与其他参数相同。我看不出这是一个有效的结构Foo Bar C