ファイルから一連の 8 つの整数を配列に読み込んで、それらの整数を表示しようとしています。3 回目もセグメンテーション違反が発生し続け、何が間違っているのかよくわかりません。
struct aStruct {
int a;
int b;
...
};
typedef struct aStruct myStruct;
while(fgets(line, MAX_LENGTH, file) != NULL) {
int myArray[8] = {0};
char* val = strtok (line," ,\n\t\r");
while (val != NULL)
{
myArray[i] = atoi(val);
i++;
val = strtok (NULL, " ,\n\t\r");
}
myStruct foo;
foo.a = myArray[0];
foo.b = myArray[1];
...
}
入力ファイルは次のように構成されています。
0, 0, 1, 5, 0, 0, 0, 0
1, 0, 2, 5, 0, 0, 0, 0
2, 0, 3, 5, 0, 0, 0, 0
3, 0, 4, 5, 0, 0, 0, 0
4, 0, 5, 5, 0, 0, 0, 0
以下でテストした場合:
printf("myArray[0]: %d ", myArray[0]);
奇妙な出力が得られます0 0
私はそれがあるべきだと信じています0 1
。何かを正しく初期化していませんか、それともnew
構造体の構文が正しくありませんか? いくつかの異なる組み合わせを試しましたが、よくわかりません。