[問題] linked list 的 free

看板C_and_CPP作者 (12341234)時間13年前 (2012/08/22 20:01), 編輯推噓0(0014)
留言14則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): 最後一個print印出的資料不是NULL 預期的正確結果(Expected Output): 我free完 都有令指標是NULL 所以全部的printf應該印出NULL 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/DpLZLIiR 補充說明(Supplement): 小弟我不知道是甚麼原因 可以幫一下忙 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.180.76

08/22 20:12, , 1F
list本身是call by value
08/22 20:12, 1F

08/22 20:14, , 2F
所以這個方法是不行嗎?? 還是有其他方法
08/22 20:14, 2F

08/22 20:37, , 3F
del(NODE *list) 改成 del(NODE **list)
08/22 20:37, 3F

08/22 20:38, , 4F
del(list) 改成 del(&list) 大概就可以了吧@@
08/22 20:38, 4F

08/22 20:39, , 5F
不對,函式內容也要照著改....懶得弄了....
08/22 20:39, 5F

08/22 20:46, , 6F
反正問題就是出在一樓大大所說的原因
08/22 20:46, 6F

08/22 20:47, , 7F
我有用valgrind測試 結果是全free掉 沒有mem leak
08/22 20:47, 7F

08/22 20:52, , 8F
free當然沒問題,但是指定敘述是不會同步處理的.....
08/22 20:52, 8F

08/22 20:55, , 9F
http://codepad.org/ReEUA1s8 唉 改給你看吧...
08/22 20:55, 9F

08/22 21:31, , 10F
多謝
08/22 21:31, 10F

08/22 22:21, , 11F
跳個tone,只是做del.的話,call by val 是沒問題的.
08/22 22:21, 11F

08/22 22:22, , 12F
個人認為沒必要硬改成 del(NODE** list);
08/22 22:22, 12F

08/22 22:30, , 13F
沒錯,所以我主要是針對指定成NULL的部分才這樣改的....
08/22 22:30, 13F

08/22 22:30, , 14F
了解, 謝謝補充 :)
08/22 22:30, 14F
文章代碼(AID): #1GDCe4GX (C_and_CPP)