标题:轻松解决 内存泄漏
只看楼主
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
以下是引用BlueGuy在2010-7-20 08:48:09的发言:

你知道c 语言的内存是怎么复制的吗? 没有人去复制整个内存。赋个指针就可以的,如果有人傻B,不去释放源指针指向的内存,那不在我的考虑范围之内,几行代码是不可能满足那么多的需求的。

你不复制整个内存,不表示别人不需要复制,也不表示就没那个需求。

C里面最能体现这个思想的,我记得有个函数strdup,就是开辟一段空间,拷贝已有的字串.

你连深拷贝,浅拷贝的概念都不知道。。。。

garbage collection

http://www.hpl.
2010-07-20 09:35
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
回复 31楼 Devil_W
不要跟我眩概念, 你喜欢用复杂的方式解决简单的问题,并认为那就是 "技术", 是你的自由。

"记录" 这个方式能解决的问题 包括但不限于 内存泄漏

[ 本帖最后由 BlueGuy 于 2010-7-20 11:38 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-07-20 11:34
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
如果你认为内存泄漏是个简单的问题。

那么,我相信你已经没有问题了。你已经是"大牛"了.
2010-07-20 11:42
大意的雪
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2010-7-13
得分:0 
辛苦了,ZL
2010-07-20 21:00
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:0 
LeakDiag最简单。

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2010-07-20 21:45
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
回复 27楼 BlueGuy
谢谢您给我解释我的困惑!

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-07-21 00:55
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
回复 36楼 vfdff
不用客气啊, 我喜欢和别人平等的交流问题。 不管是技术在我之上,还是在我之下。

我就是真命天子,顺我者生,逆我者死!
2010-07-21 12:44
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
得分:0 
汗,我完全不了解C图形。。看来要加紧学习了
2010-07-21 16:54
限量版猪头
Rank: 2
等 级:论坛游民
威 望:1
帖 子:165
专家分:30
注 册:2006-2-5
得分:0 
楼主思想不错,但算不上什么绝技吧,

而且有些地方还要改善,比如精确查出是哪个malloc造成的泄露,你这个好像不行吧?只能知道有没有泄露而已。。

最好的办法是用编译器自带的宏,比如__FILE__, __LINE__

具体代码我就不写了,可以封个函数比如叫os_mem_malloc,而且适用任何地方,只要自己编个库就好,自己的代码写内存相关都用os_mem开即可。

可以构建一个HASH表,KEY就是内存地址,VALUE就是某个结构,这个结构里有malloc的文件名,行号,内存大小等其他有用的信息

当申请内存时候就往这个HASH表添加元素,反之释放就删除,如果删除的内存不再HASH表内,则是释放野指针。

最终在某个时刻遍历整个HASH表就知道泄露的具体地方了。




[ 本帖最后由 限量版猪头 于 2010-7-21 17:26 编辑 ]

2010-07-21 17:08
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
回复 39楼 限量版猪头
吹牛了, 呵呵,

我就是真命天子,顺我者生,逆我者死!
2010-07-21 20:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-311668-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.193915 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved