我很困惑为什么这段代码会返回分段错误。基本上,我尝试使用fopen()
和创建一个新的文本文件fprintf()
。
void my_function() {
FILE *g;
char s1[30];
printf("\nNew file (text): ");
scanf("%s",&s1); //gets(s1);
g = fopen(s1,"w");
fprintf(g,"something");
fclose(g);
}
我尝试使用以下方法检查 fopen 的有效性:
if (g == NULL) {
perror("fopen()");
exit(1);
}
返回fopen(): Bad address
,所以可能这就是问题所在。知道是什么原因造成的以及如何解决吗?
问题出在scanf("%s", &s1)
。而是写,scanf("%s", s1);
因为s1
已经是一个指针。
您所做的是将指针传递给指针。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句