1
A
回答
12
你不能檢查它是否已經是free
'd(free
的簽名應該告訴你很多;它不能從調用者的角度修改指針)。但是,你可以做兩件事之一。
更改您的設計。誰負責這個記憶?看起來好像你的設計沒有說清楚,這是內存泄漏的最常見原因。把所有權放在你的代碼的一部分上,並完成它。爲什麼中斷函數有條件地釋放內存?爲什麼這看起來是最合乎邏輯的解決方案?
將指針設置爲
null
並雙倍釋放所有你喜歡的東西。free(NULL)
是完全有效的。
我寧願選擇1,現在學習本課程將幫助你編寫更好的代碼的道路。
+0
謝謝。我會測試他們,然後回來。 – Moi 2015-01-20 21:24:11
4
+1給Ed S.的答案。
但是,也運行valgrind
- 它會很快拾取許多動態內存分配錯誤,並且可能比您更好地閱讀代碼。
+0
謝謝@abligh – Moi 2015-01-20 22:59:01
相關問題
- 1. 檢查內存中的值是否已經存在
- 2. 查詢實例是否已被釋放
- 3. Rails,檢查url是否已經存在
- 4. MySQL檢查表是否已經存在
- 5. 檢查SPListItem是否已經存在
- 6. 檢查mysql表是否已經存在
- 7. 檢查數據是否已經存在
- 8. 檢查表單是否已經存在
- 9. 檢查是否值已經存在
- 10. 檢查'onload'是否已經被觸發?
- 11. 如何檢查android.hardware.Camera是否被釋放?
- 12. 檢查對象是否被釋放
- 13. 檢查HTML按鈕是否被釋放
- 14. 檢查數組內的值是否已經存在
- 15. C#檢查SharePoint列表項是否已經存在.. CAML?
- 16. 如何斷言內存已被釋放
- 17. 如何檢查對象已被釋放在C#
- 18. Objective-c:知道內存位置是否被釋放
- 19. 當你嘗試釋放()已經釋放c內存時會發生什麼?
- 20. 如何在KeyListener中檢查Ctrl是否被釋放?
- 21. 如何檢測換檔是否已經釋放?
- 22. 檢查是否UIViewController中已經創建
- 23. 檢查ViewController是否已經在後臺
- 24. 在WPF/C#中,如何檢查中心按鈕是否被點擊或釋放?
- 25. 檢查內存是否已初始化
- 26. 如何用PHP檢查ip是否已經存在於MySQL中?
- 27. 檢查數據是否已經存在於chrome.storage.sync中
- 28. 如何檢查EC2中是否已經存在keyname
- 29. 檢查組合是否已經從列表理解中存在
- 30. 檢查NSString/NSMutableArray是否已經存在於NSUserDefault中?
中斷功能在任何情況下都不能嘗試釋放它。如果您將此作爲公理,您將被迫對您的設計進行其他更改。這些變化可能是必要的,而不是這一個。 – 2015-01-20 21:19:40
另請參閱[XY問題](http://meta.stackexchange.com/a/66378/173950) – 2015-01-20 21:20:33
如果您使用的是C++,正如您的標題所示,爲什麼您使用'malloc'和'free' ? – 2015-01-20 21:26:11