[問題] 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