C语言 问一个关于文件指针的问题,就是文件指针fclose之后,指针变量fp自己会有内存吗,要free吗?

其实是这样的,我编的一个函数,里面要递归,又要打开文件,所以递归之前我已经把fpfclose了,但是还是堆栈溢出了,我一步一步定位之后发现,最后执行一个rewind(fp... 其实是这样的,我编的一个函数,里面要递归,又要打开文件,所以递归之前我已经把fp fclose了,但是还是堆栈溢出了,我一步一步定位之后发现,最后执行一个rewind(fp)时,堆栈溢出了,我就怀疑这个fp也是占内存的,函数里的其他变量都动态分配或者是全局变量,不知道是不是fp的问题,请高手帮我看一下,谢谢了! 展开
 我来答
L_o_o_n_i_e
2011-07-30
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
文件指针指向FILE结构. fopen 送返此结构。
应当 把 fp 声明为全局量,(不在递归函数中声明),fopen 最好在函数以外。函数中可以读写和回绕,就不会有问题。
学习编程吧
2011-07-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
只要是new的 都要delete才能释放内存的 文件指针也不例外 fclose只是关闭相应的文件 而不是释放fp的内存
追问
可是我没有给他分配内存,就写了FILE *fp,这样是不是也会占着内存,函数没有结束之前?
追答
是占着内存的 但是你没办法释放 因为不是new的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zero_fn
2011-07-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
你对一个已经fclose了的fp进行rewind 操作? 程序应该崩溃了。
即使对一个NULL的fp进行rewind操作程序应该也会崩溃的。
更多追问追答
追问
我是在fclose之前rewind的
追答
递归层数太多也会把堆栈撑爆的,一个每次递归前,当前层的所有已经动态分配的变量都会进栈的吧,这是堆栈的作用啊,如果你每层都动态申请一个超大数组的话,堆栈很快爆的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友888859471
2011-07-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
你这时看看单步看看一以rewind(fp),fp有没有打开成功,我觉得你问题是没有打开成功。
所以建议你在每一个打开文件都检查一下有没打开成功,如果没有看看出的是什么问题。
更多追问追答
追问
可是它弹出说Stack Overflow!如果堆栈溢出的话是不是fopen也不能执行了?
追答
那你试过Fp打开成功了吗,我这显示如果打开不成功的话是图上所说的错误,你再看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式