int main( int argc, char** argv) {
FILE *inFilePtr = fopen(*(argv + 1), "r");
char *rawdata = malloc(sizeof(char) * 100);
float *ary = malloc(sizeof(float) * 50);
int counter = 0;
float averageAns;
int count = 0;
while (count < 1 ){
//fgets(rawdata, 50, inFilePtr); //I have tried both
fscanf(inFilePtr, "%s", rawdata);
*(ary + counter) = atof(strtok(rawdata, ","));
counter++;
*(ary + counter ) = atof(strtok(rawdata, NULL));
counter++;
*(ary + counter) = atof(strtok(rawdata, NULL));
counter++;
count++;
}
なぜセグフォルトが発生し続けるのか、一生わかりません。ループがなくてもセグ フォールトが発生します (カウント < 1 は、一度通過できるかどうかを確認するためだけでした)。
fgets()、fscanf() では機能しません。fgets のストリームを (stdin) に変更すると、セグ フォールトが発生します。ファイル * が問題であると想定したため、これについて言及しますが、今はそうではないと思います。データ ファイルに区切り文字 " " と "," を作成しました。
誰かが私が間違ったことを知っているなら、私はそれを感謝します.