無論我嘗試什麼,我都會在此功能的某個位置出現seg故障。爲什麼我在這個功能中遇到seg故障?
int build_playlist(Song playlist[], char* inputFiles[], int numInputFiles)
{
int i = 0;
int j = 0;
for(j = 0; j < numInputFiles; j++)
{
FILE *file = fopen(inputFiles[j], "r");
if (file == NULL)
{
printf("File could not be opened.\n");
return -1;
}
while (1)
{
if (feof(file))
{
break;
}
fscanf(file, "%s %s %s %d", playlist[i].artist, playlist[i].title, playlist[i].album, &playlist[i].rating);
i++;
}
fclose(file);
numInputFiles++;
}
return i;
}
...使用調試器,單步執行代碼,看到它出現segfaults上線。這應該給你一個強烈的暗示。 – dandan78 2014-09-26 05:55:33
什麼是「播放列表」?它是如何聲明的?它是如何傳遞給你的函數的?與'inputFiles'一樣,它是什麼,它是如何聲明和初始化? – 2014-09-26 05:55:54