1
我有一些代碼,我用普通的C編寫的問題。 它在Windows上工作正常,但在Ubuntu上有一個錯誤說「分段錯誤(核心轉儲)」 。我尋找答案,但有太多的問題,可以導致這個錯誤。分割故障核心轉儲與C上的Ubuntu
char line[80];
char sett[50][80];
int index=0;
static const char filename[] = "squid.conf";
FILE *file = fopen (filename, "r");
while (fgets (line, sizeof line, file) != NULL)
{
strcpy(sett[index],line);
index++;
}
我只是簡單地想要將整個文件寫入一個2維數組,逐行。 如果我引用//strcpy(sett[index],line);
該程序運行正常,沒有錯誤。
輸入文件中有多少行?如果它超過50個,你會在'sett'末尾寫下 – simonc
鋤頭文件中有很多行嗎?如果你在一個調試器中運行,它將停在'strcpy'行,很可能'index'變量將大於50. –
爲什麼不直接在'sett [index]中執行'fgets'? –