【【高手来】】看下C语言文件指针

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:15:06
mian()
{
FILE *open_file();
FILE *fp;
fp=open_file();
......
}
FILE *open_file()
{
FILE *fp1;
fp1=fopen(...);
......
return fp1;
}
都说文件打开之后要关闭,由于某种需要我的文件是在子函数open_file中打开的,然后再把文件指针回传回去。那样的话,在子函数里只能实现打开文件这一步,永远也无法实现fclose这一步的
请教高手,这样会存在问题吗?

你这个一定运行不了,fp1是一个局部的指针,函数结束后这个指针就释放了,造成了指针悬挂,你可以把它定义为全局的,至于在哪关闭,因为现在是全局的了,在哪关都可以了

在main的最后fclose(fp)啊,又没规定非要在同一个函数里

fp是指针,所以在主函数中调用fclose(fp);一样可以关闭的。