当前位置: 首页 > news >正文

java valgrind_意外的内存泄漏[Valgrind]

今天我只是想检查一下valgrind是如何工作的 . 所以我创建了一个简单的程序 .

//leak.C

#include

class leak

{

int *p;

public:

leak():p(new int[10]()){std::cout<

virtual void set()

{

for(int i=0;i<10;++i) p[i]=i*i;

}

virtual void display()

{

std::cout<

for(int i=0;i<10;++i) std::cout<

}

virtual ~leak()

{

std::cout<

delete[] p;

}

};

class exleak: public leak

{

double *r;

public:

exleak():r(new double[5]()){std::cout<

void set()

{

leak::set();

for(int i=0;i<5;i++) r[i]=i*3.0;

}

void display()

{

leak::display();

std::cout<

for(int i=0;i<5;i++) std::cout<

}

~exleak()

{

std::cout<

delete[] r;

}

};

int main()

{

leak *x=new exleak();

x->set();

x->display();

delete x;

}

输出符合预期 . 我预计没有内存泄漏 . 我编译了文件 leak.C 并生成了一个可执行文件 leak . 但当我输入以下命令 valgrind --leak-check=yes --verbose ./leak 时,我感到很惊讶 . 代码有内存泄漏 . :-o

这就是我得到的 .

==9320==

==9320== HEAP SUMMARY:

==9320== in use at exit: 12 bytes in 1 blocks

==9320== total heap usage: 3 allocs, 2 frees, 92 bytes allocated

==9320==

==9320== 12 bytes in 1 blocks are definitely lost in loss record 1 of 1

==9320== at 0x40263A0: operator new(unsigned int) (vg_replace_malloc.c:214)

==9320== by 0x8048B0E: main (in /home/prasoon/leak)

==9320==

==9320== LEAK SUMMARY:

==9320== definitely lost: 12 bytes in 1 blocks

==9320== indirectly lost: 0 bytes in 0 blocks

==9320== possibly lost: 0 bytes in 0 blocks

==9320== still reachable: 0 bytes in 0 blocks

==9320== suppressed: 0 bytes in 0 blocks

==9320==

==9320== For counts of detected and suppressed errors, rerun with: -v

==9320== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 25 from 6)

代码如何泄漏内存?

definitely lost: 12 bytes in 1 blocks //WHERE?

EDIT : Matter Resolved .

相关文章:

  • 国内比较经典的图库资源网站
  • jstack 脚本 自动日志_Shell脚本实战:日志关键字监控+自动告警
  • 漫谈创业和管理-程序员5大思维障碍
  • mysql版本号字段比较大小_sqlserver中软件版本号进行字符串对比比较大小
  • 选择的自由
  • DSA and RBackupWindow
  • 慢连接 java_java nio 如何处理慢速的连接
  • 臭毛病从何而来
  • graphpad7.04多组比较p值_手把手教你用Graphpad做单因素方差分析
  • java查询sqlserver_JAVA实现对SQLServer增,删,改,查
  • 用最简单的办法,实现最好的打印(用BCB调用WORD的打印功能)
  • java 模块添加新功能_springboot添加新模块的方法
  • 用最简单的办法,实现最好的打印(用BCB调用记事本的打印功能)
  • java弹簧布局_Java弹簧布局管理器使用方法详解
  • 把EXCEL的数据导入数据库(ACCESS、MSSQL等)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 30秒的PHP代码片段(1)数组 - Array
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • PaddlePaddle-GitHub的正确打开姿势
  • rc-form之最单纯情况
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 排序算法学习笔记
  • 前端性能优化--懒加载和预加载
  • 温故知新之javascript面向对象
  • 用element的upload组件实现多图片上传和压缩
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #Spring-boot高级
  • #考研#计算机文化知识1(局域网及网络互联)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2.2w字)前端单元测试之Jest详解篇
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (转)Google的Objective-C编码规范
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • [Android Studio 权威教程]断点调试和高级调试
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [C++]高精度 bign (重载运算符版本)
  • [Django开源学习 1]django-vue-admin
  • [Gamma]阶段测试报告
  • [Java][方法引用]构造方法的引用事例分析
  • [JS]变量
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表