printf()函数存在内存泄露?

nmzrl 2007-03-08 12:20:23
跟踪printf()函数发现:
首次使用printf函数时会调用_malloc_crt(_INTERNAL_BUFSIZ)来申请内存
但是在程序结束前并没有找到释放这段内存的地方,请问这里难道有内存泄露?
调用堆栈如下:
malloc_dbg(unsigned int nSize=4096, int nBlockUse=2,
const char * szFileName=0x00429578, int nLine=93)
_stbuf(_iobuf * str=0x0042cc60)
printf(const char * format=0x0042802c, ...)
main()

...全文
690 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nmzrl 2007-03-08
  • 打赏
  • 举报
回复
是通过_malloc_crt手动申请的空间,系统可以回收吗?
要是这样我们自己malloc的也可以不去释放了~~
jixingzhong 2007-03-08
  • 打赏
  • 举报
回复
程序都结束了,
就让系统来回收好了 ~

不过,
printf 有这个问题么?
没有关注过 ~
WingForce 2007-03-08
  • 打赏
  • 举报
回复
不是泄漏,只是一个内部缓冲,用于存放显示得字符串
nmzrl 2007-03-08
  • 打赏
  • 举报
回复
只申请一次,所以影响不大,可能是处于效率优化才这么做的
北极猩猩 2007-03-08
  • 打赏
  • 举报
回复
是通过_malloc_crt手动申请的空间,系统可以回收吗?
虫虫说得很清楚了,在程序退出的时候,系统会收回所有内存。

估计这段内存是printf动态分配作为内部缓冲区的。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧