社区首页 >问答首页 >std::cout导致内存泄漏

std::cout导致内存泄漏
EN

Stack Overflow用户
提问于 2015-05-26 20:20:33
回答 1查看 1.7K关注 0票数 3

我有一个非常简单的C++程序。

代码语言:javascript
代码运行次数:0
复制
#include <iostream>

int main()
{
    std::cout << "HI" << std::endl;
    return 0;
}

我用c++ --std=c++11 leak.cpp命令在Mac上编译了这段代码。

当我使用valgrind --leak-check=full ./a.out进行调试时,我得到了以下输出:

代码语言:javascript
代码运行次数:0
复制
==2187== HEAP SUMMARY:
==2187==     in use at exit: 38,906 bytes in 429 blocks
==2187==   total heap usage: 508 allocs, 79 frees, 45,074 bytes allocated
==2187== 
==2187== LEAK SUMMARY:
==2187==    definitely lost: 0 bytes in 0 blocks
==2187==    indirectly lost: 0 bytes in 0 blocks
==2187==      possibly lost: 0 bytes in 0 blocks
==2187==    still reachable: 4,096 bytes in 1 blocks
==2187==         suppressed: 34,810 bytes in 428 blocks
==2187== Reachable blocks (those to which a pointer was found) are not shown.
==2187== To see them, rerun with: --leak-check=full --show-leak-kinds=all

结果是有4096个字节是“仍然可以到达的”。如果我删除了cout语句,那么就没有更多的“仍然可达”字节了。

为什么输出到std::cout会导致内存泄漏?

EN

回答 1

Stack Overflow用户

发布于 2015-05-26 20:22:13

可能是泄露报告中的假阳性。Valgrind只能如此聪明;您的标准库实现正在使用Valgrind没有特殊情况的某些自由。

我更担心的是,为什么这个小程序要执行508次分配,总共45,074字节。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30468149

复制
相关文章
360导致内存泄漏
360安全卫士导致内存泄漏,这点肯定,已得到360技术人员确认。其他安全软件是否会导致,未验证,maybe,只有你自己亲测一下了。
Windows技术交流
2022/03/01
3.1K1
std::cout彩色输出
想写这个东西其实是因为最近要写个命令行的工具,但是有个问题是什么呢?就是传统的那个黑漆漆的窗口看起来很蛋疼。并且完全看不到重点,于是就想起来这么一个东西。相对来说针对*nix的系统方法会比较通用一些,而windows下这个东西需要用到专门的Windows相关的api来实现。
obaby
2023/02/23
8630
undefined reference to `std::cout'等错误 undefined reference to `std::cout'等错误
(2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。
landv
2021/02/04
2.2K0
qDebug | std::cout | printf性能表现
  通过使用qDebug,std::cout,printf在1秒内打印的字符串数据。
Qt君
2019/10/23
1.5K0
qDebug | std::cout | printf性能表现
ThreadLocal导致内存泄漏排查小记
公司sso域名变动,所有涉及的产品都要修改相关的配置。配置修改好之后,运行期间发现业务系统不稳定,出现了很多json解析异常。但是随着sso那边问题得到修改,我们自己的产品也逐渐稳定起来,但查看日志发现多条内存泄露的日志,于是本着学习的心态,对具体的原因进行了粗略的分析,最终得出的结论是异常导致threadLocal.remove()方法没有执行,最后内存泄漏了,以下是本人定位问题的过程。
写一点笔记
2022/08/11
9450
ThreadLocal导致内存泄漏排查小记
为什么Handler会导致内存泄漏?
最近在思考关于内存泄露的问题,进而想到了关于我们最常见和熟知的Handler在Activity内导致的内存泄漏的问题,这个问题相信作为开发都是很熟悉的,但是这背后更多的细节和导致泄漏的不同的情况,可能很多人就没有那么了解和清楚了,因此这次和大家分享一下什么情况下会导致内存泄漏,以及内存泄漏背后的故事。
没关系再继续努力
2021/11/22
1.3K0
c ++中的cout和std :: cout有什么区别?
cout和std::cout都相同,但是唯一的区别是,如果我们使用cout,则必须在程序中使用命名空间std,或者如果您不使用std命名空间,则应该使用std::cout。
自学气象人
2023/06/20
2.7K0
c ++中的cout和std :: cout有什么区别?
内存泄漏
这个笔记是记录一下,关于内存泄漏的知识,之前我们就知道了,如果要用堆必须要释放堆的内存,如果不释放会产生很多的内存垃圾和碎片,影响系统运行效率,甚至出错。
用户7272142
2023/10/11
2990
内存泄漏
Android中导致内存泄漏的竟然是它----Dialog
一. 内存泄漏的 Bug 猛增 最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题。在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来。 登录页面出现内存泄漏??!!楼主的代码是如此的完美而无懈可击,这么可能出现这么多泄漏的问题? 插播什么是 Activity 泄漏:Android 中 Activity 代表一个页面,拥有一段生命周期,生命周期结束后,Activity 对象应当在之后某个合适的时机被 VM 回收内存。出现了泄漏就意味着 Ac
腾讯Bugly
2018/03/23
3.4K0
Android中导致内存泄漏的竟然是它----Dialog
leakCanary 内存泄漏
当jvm进行垃圾回收时,无论内存是否充足,如果该对象只有弱引用存在,那么该对象会被垃圾回收器回收,同时该引用会被加入到关联的ReferenceQueue。因此程序通过判断引用队列中是否已经包含指定的引用,来了解被引用的对象是否被GC回收(引用队列存在指定的弱引用,说明对象被回收)
花落花相惜
2021/12/15
1.5K0
记一次使用Zookeeper C API导致的内存泄漏
可以看到 definitely lost: 24 bytes in 1 blocks
扫帚的影子
2018/09/05
1.7K0
NSURLSession内存泄漏
检查代码是否有leak的时候,发现NSURLSession存在leak,最后发现必须session请求完成后,立即释放,代码如下: - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{ [session finishTasksAndInvalidate]; }
czjwarrior
2018/05/28
2.2K0
JavaScript内存泄漏
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
张炳
2019/08/02
1.4K0
JavaScript内存泄漏
java内存泄漏
一般来说,内存泄漏有两种情况,一种情况如在C/C++语言中的,在堆中分配的内存在没有将其释放掉的时候,就将其所有能访问这块内存的方式都删除掉(如,指针重新赋值)。这种情况就像,占着地儿,别人还没办法引用,又没释放空间,内存泄漏。
MickyInvQ
2020/09/27
1.5K0
内存泄漏漫谈
对于C/C++来说,内存泄漏问题一直是个很让人头痛的问题,因为对于没有GC的语言,内存泄漏的概率要比有GC的语言大得多,同时,一旦发生问题,也严重的多,而且,内存泄漏的排查往往十分困难。对于内存泄漏,维基百科的定义是:在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存泄漏的原因通常情况下只能由程序源代码分析出来。如果一个程序存在内存泄
腾讯移动品质中心TMQ
2018/02/06
2.6K0
内存泄漏漫谈
Android 内存泄漏
内存泄漏(Memory Leak):是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
Yif
2019/12/26
1.9K0
jvm内存泄漏
Runtime.getRuntime().freeMemory()表示当前还有多少空闲内存
全栈程序员站长
2022/08/23
1.5K0
jvm内存泄漏
内存泄漏分析
在内存映像文件导出中详细的介绍了当应用程序出现内存泄露的时候自动导出内存映像文件。在实际的生产环境中主要是使用jamp通过命令行的模式来导出内存镜像文件,下面详细的阐述下这个过程。
无涯WuYa
2022/12/03
1.9K0
内存泄漏分析
golang 内存分析/内存泄漏
进入交互式模式之后,比较常用的有 top、list、traces、web 等命令。
ppxai
2020/09/23
9.2K0
python 内存泄漏
程序运行时都需要在内存中申请资源用于存放变量,python 在处理内存中的变量时会调用垃圾回收机制,会留心那些永远不会被引用的变量并及时回收变量,删除并释放相关资源。
为为为什么
2022/08/09
2.8K0
python 内存泄漏

相似问题

std::队列内存消耗导致内存泄漏- C++?

32

为什么cout.imbue(locale(""))会导致内存泄漏?

11

导致内存泄漏的std::字符串

10

导致内存泄漏

10

导致内存泄漏?

43
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文