構造体を作成しましたが、その ID 番号、値、およびステータスがあります。データで構成されるファイルがあります(1 199 0 2 199 1...) 1 は数値、199 は値、0 はステータスで、このように続けます... filldata( という 1 つの関数を使用しました) を使用して、一度に 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;
}