当前位置: 技术问答>linux和unix
linux程序关于fopen的疑问!
来源: 互联网 发布时间:2016-06-07
本文导语: #include #include int main(){ int a=2; char *filename; FILE *fp; sprintf(filename,"%d.dat",a); if((fp=fopen(filename,"w"))==NULL){ printf("exit!"); ...
#include
#include
int main(){
int a=2;
char *filename;
FILE *fp;
sprintf(filename,"%d.dat",a);
if((fp=fopen(filename,"w"))==NULL){
printf("exit!");
}
fprintf(fp,"%d",a);
fclose(fp);
return 0;
}
这个程序那里错了呢?传给fopen的文件名怎么建立不起来,GDB调试时到了fopen处就出错了:segmentation fault!求助,怎么样才能给fopen中第一个文件名参数传递变量呢?
#include
int main(){
int a=2;
char *filename;
FILE *fp;
sprintf(filename,"%d.dat",a);
if((fp=fopen(filename,"w"))==NULL){
printf("exit!");
}
fprintf(fp,"%d",a);
fclose(fp);
return 0;
}
这个程序那里错了呢?传给fopen的文件名怎么建立不起来,GDB调试时到了fopen处就出错了:segmentation fault!求助,怎么样才能给fopen中第一个文件名参数传递变量呢?
|
......
你的问题不是 fopen 出错,
而是 char *filename 更本就没有分配内存。
直接改成 char filename[12]; 就行了。
你的问题不是 fopen 出错,
而是 char *filename 更本就没有分配内存。
直接改成 char filename[12]; 就行了。