所以我面临一个奇怪的问题。声明后续未使用的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