所以我面臨一個奇怪的問題。聲明後續未使用的int
時,出現分段錯誤。當我刪除聲明時,代碼完美運行。怎麼會這樣?涉及未使用變量的分段錯誤
FILE* ptr = fopen("prueba.txt", "r");
int x;
char* a;
int y = 0; //this cause the seg fault.
do{
while (fscanf(ptr, "%i", &x)!=-1){
fscanf(ptr, "%s", a);
printf("%i %s ",x, a);
}
fseek(ptr, 0, SEEK_SET);
}while(1);
fclose(ptr);
}
但是即使我使用它,說有y++;
,printf
後,我仍然得到分割故障。
fscanf(ptr,「%s」,a);這看起來像是問題。 a不是malloced – CIsForCookies
'fscanf(ptr,「%s」,a);'覆蓋隨機存儲器。通過添加一個變量,你碰巧改變了它所踩踏的隨機存儲器。 – Art
@藝術,太短的答案得到autochanged評論。如果您可以在答案部分中找到答案,它將有助於永久性地在「未答覆」部分中顯示此問題。 – CDahn