关于利用fopen函数创建文件的问题?

void oppfile(void)
{
char *s;
FILE *fp;
printf("Enter output file name: ");
scanf("%s",s);
if((fp = fopen(s,"wb+")) == NULL){
printf("can't open file : %s",s);
exit(EXIT_FAILURE);
}
num_parts = fwrite(inventory, sizeof (struct part),num_parts,fp);
fclose(fp);
想要利用这个函数创建一个特定名称的文件,但是运行的时候,系统提示说 s 未经初始化,
1 请问该如何输入文件的路径和名称才能够创建文件?
2 请问我在fopen函数的第一个参数直接输入文件名时,VS2010会自动创建一个文件,但是我加上路径时就无法创建了,为什么啊?我试过把 ' \ ' 换成 ' / ' 或' \\ ' 都不行?

蛊毒传说
浏览 701回答 2
2回答

撒科打诨

字符数组虽然不等价于指针,你可以把字符数组看成是常量的指针,就是说除了不能被修改,其他的地方和指针是一样的,本质都是指向某一内存空间的地址。

慕村225694

char *s ,未分配内存而是用,是对野指针操作,scanf写入的是不可靠地址,内存泄漏,
打开App,查看更多内容
随时随地看视频慕课网APP