[问题] directed graph memory leak (用Xcode)

楼主: Cosmology (宇宙学型男)   2015-05-05 18:04:12
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Mac OSX
Xcode
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
No
问题(Question):
自己做 directed graph 这个东西
自己看书摸索学
用Linked List来呈现
基本上就是增加某两点之间的路径(有方向)
或是删除路径
或删除跟增加点
程式跑的时候没什么大问题
但是我通常会给极限测试... 就是把条件设成无限while让他重复
去看到底会不会有内存的问题
之前自我感觉良好感觉没什么问题
但是用Xcode的工具去测试的时候一直在我增加路径这个Function中会有memory leak...
导致memory使用率一直增加
搞了整天一直不知道问题出现在哪边
程式码:
http://ideone.com/kjCTSa
x是我的起点, y是终点
List[x]只是众多起点其中x这个起点
我只贴增加路径那个部分(顺序目前无视)
(其他的地方跑起来没问题的样子)
其中:
current_node->next = new_node 这行如果注解掉的话就没有memory的问题
但是我觉得这行应该是没问题啊...
如果现在这个node的下一个是空的
而且现在的node也不等于我们要增加的(怕重复)
现在这个node就连到新的node
检测图:
http://i.imgur.com/QnmBf8r.png
http://imgur.com/QnmBf8r,pLSvJTD#1
跪求高手帮我解释一下到底我哪边有问题?(还是我脑袋有问题Q_Q)
我愿意奉献部分P币求解答
拜托各位高手了...
作者: Feis (永远睡不着 @@)   2015-05-05 18:37:00
new_node = NULL; delete new_node; 超乎我的理解current_node = List[x]; 也不知道在干嘛. 无法阅读 Orzcurrent_node 为什么需要 new. 然后你在 delete 什么 ?然后边界条件看起来也是错的.你 new 了没被指不就悲剧了. 建议你找个 linked list 实作看一下.code 里面所有 new 跟 delete 的都有问题 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com