我创建了一个结构,它有它的 id 号、它的值和它的状态。我有一个由数据组成的文件(1 199 0 2 199 1...)1 它的数字,199 是值,0 是状态并继续这样......我使用了 1 个名为 filldata( ) 一次读取 3 个数字,例如 1 199 0,然后将其放入结构数组的传递元素中。然后,我使用另一个函数调用 this 函数来填充结构数组。fillAll 函数会将已从文件复制到结构数组的数据集返回但我收到了分段错误。知道为什么吗?代码解释得更好:
int filldata(struct Data_point *a, const char *filelocation)
{
FILE *f;
if((f=fopen(filelocation,"r"))==NULL)
printf("You cannot open");
if( fscanf(f, "%ld%lf%d", &(a->sampleNumber), &(a->value), &(a->status)) == 3)
return 1;
else
return 0;
}
int fillAll(struct Data_point *a, const char *filelocation)// I will pass the struct array and the location of my file string
{
int index=0;
while(filldata(&a[index], filelocation))
index++;
return index;
}