看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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幣求解答 拜託各位高手了... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.234.170 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430820255.A.423.html ※ 編輯: Cosmology (140.109.234.170), 05/05/2015 18:06:27
Feis: new_node = NULL; delete new_node; 超乎我的理解 05/05 18:37
Feis: current_node = List[x]; 也不知道在幹嘛. 無法閱讀 Orz 05/05 18:38
Feis: current_node 為什麼需要 new. 然後你在 delete 甚麼 ? 05/05 18:39
Feis: 然後邊界條件看起來也是錯的. 05/05 18:41
Feis: 你 new 了沒被指不就悲劇了. 建議你找個 linked list 實作看 05/05 18:42
Feis: 一下. 05/05 18:43
Feis: code 裡面所有 new 跟 delete 的都有問題 XD 05/05 18:44