首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说一说什么是内存泄露,如何检测
[问答题]
说一说什么是内存泄露,如何检测
添加笔记
求解答(0)
邀请回答
收藏(91)
分享
纠错
12个回答
添加回答
8
BugWriter404
new delete匹配;智能指针;静态分析插件
发表于 2023-02-26 09:38:27
回复(0)
3
真令人头秃
内存泄漏是指已经动态分配的堆内存由于某些原因程序未释放或者无法释放,造成的系统内存浪费,导致程序运行缓慢甚至是程序崩溃等严重后果。
发表于 2023-02-09 19:41:28
回复(1)
2
zzwplus
没有AddressSanitizer我不认可
发表于 2022-08-10 11:25:44
回复(0)
1
雏鹰划空
1. 顾名思义:内存泄漏的意思是,已经动态分配的内存没有及时释放(内存一直被占用着)。 2. 解决: =》new delete匹配 =》智能指针 =》静态分析插件
发表于 2023-11-09 21:46:21
回复(0)
1
羊翻翻会幸福的
动态分配在堆区的内存没有被及时释放,造成系统内存的浪费,导致程序运行速度慢 避免:动态开辟,及时释放,智能指针来避免内存泄露
发表于 2023-07-26 16:43:58
回复(0)
0
代码要笑着写
new, malloc, delete, free,程序员在堆上动态分配的内存空间未及时释放,导致堆空间越来越少最后程序终止由于分配失败。检测可以用一些内存泄漏检测器,主要思想都是重载new运算符去记录new的空间,或者使用智能指针unique_ptr(唯一性,只能只用移动语义std::move进行重新赋值), shared_ptr(共享,内部记录引用计数,归0则清除,但是存在循环引用问题), weak_ptr(不增加引用记录,比如链表中的next指针就可以使用)
编辑于 2024-03-28 11:16:45
回复(0)
0
牛客393524079号
指程序中动态分配的内存没有及时释放回收。造成内存浪费,导致程序运行速度减慢或者系统崩溃。
发表于 2023-11-11 13:11:45
回复(0)
0
牛客994887968号
程序员在堆区申请的内存,没有手动释放,造成内存泄漏。不良后果可能有影响程序运行效率或造成系统崩溃。智能指针就是为了避免这种情况出现的
发表于 2023-08-30 16:03:47
回复(0)
0
hcodeboy
由new/malloc 开辟的内存没有通过delete/free释放,就会造成内存泄露。
发表于 2023-08-15 11:16:16
回复(0)
0
彩虹梦
CLink
发表于 2023-07-16 10:33:55
回复(0)
0
-Passerby゛
5. 缺少拷贝构造函数 两个对象拥有指向同一个动态分配的内存空间的指针。当释放第一个对象的时候,它的析构函数就会释放与该对象有关的动态分配的内存空间。而释放第二个对象的时候,它的析构函数会释放相同的内存,这样是错误的。 6. 缺少重载赋值运算符 这种问题跟上述问题类似,也是逐个成员拷贝的方式复制对象,如果这个类的大小是可变的,那么结果就是造成内存泄露; 8. 没有将基类的析构函数定义为虚函数 当基类指针指向子类对象时,如果基类的析构函数不是virtual,那么子类的析构函数将不会被调用,子类的资源没有正确是释放,因此造成内存泄露。编译程序时添加 -g 选项以生成调试信息。例如,使用以下命令编译程序: 编译程序时添加 -g 选项以生成调试信息。例如,使用以下命令编译程序: g++ -g -o myprogram myprogram.cpp 运行程序时使用 Valgrind 工具。例如,使用以下命令运行程序: TXT 复制 valgrind --leak-check=full ./myprogram 在运行过程中,Valgrind 会记录程序的内存分配和释放情况,并在程序退出时生成报告。--leak-check=full 选项用于检测所有的内存泄漏,如果发现内存泄漏,会在报告中给出相关信息。 分析 Valgrind 报告。Valgrind 报告通常包括内存泄漏的数量、大小、位置以及对应的代码行数等信息,可以帮助开发人员找出程序中的内存泄漏问题,并进行修复。
编辑于 2023-05-16 16:59:17
回复(0)
0
毛克成
c++可以采用智能指针
发表于 2022-07-05 21:10:56
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
操作系统
上传者:
real19931
难度:
12条回答
91收藏
2422浏览
热门推荐
相关试题
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
阿里巴巴2015实习生笔试题
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
有20000人的就餐需求,现建了一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题