gpt4 book ai didi

c++ - 重新使用文件指针会导致内存泄漏吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:03:23 25 4
gpt4 key购买 nike

我已经好几年没接触过 C++ 了,所以请多多包涵...

我的程序内存泄漏导致运行时错误。这会导致错误吗?

我有一个全局变量FILE *fp;

在回调函数中,我有:

fp = fopen(filen,"w");
// do some writing
fclose(fp);

这个过程用同一个指针(fp)重复几次。使用相同的文件指针有问题吗? fclose() 会自动为我释放内存,还是我需要手动删除它?如果我正在编写大量文本,是否存在任何可能导致运行时错误的限制?

谢谢!

最佳答案

是的,fclose 释放与 FILE * 关联的所有资源。根据经验,仅对使用 malloc 分配的内容使用 free,对使用 new 分配的内容仅使用 delete

而且您永远不会“重复使用”同一个指针:调用 fopen 将返回一个新的 FILE *

顺便说一下,由于您正在使用 C++,请考虑查看 fstream。它将为您处理资源管理。

关于c++ - 重新使用文件指针会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com