關於共享ptr
回答
如果您想在C中進行垃圾回收,請查看Hans Boehm垃圾回收庫。
共享ptr刪除了處理對象刪除的大部分必要性,但有很多複雜性:只有一個共享指針可以一次保存指針。您可能還想看看Boost's smart_ptr pointer handling和相關課程。
但是shared_ptr和Boost是C++。你將很難在C中實現這一點:shared_ptr依靠運算符重載來實現它的魔力。如果沒有操作符重載,你無法知道某個地方是否有人持有指針副本。 (這在C++中也是一個問題,但是如果在整個代碼中使用shared_ptr,操作符重載會降低風險。)
我肯定會推薦Hans Boehm。
這個庫很酷,我會檢查它。我想在獲得lib之前得到一些想法。謝謝。 –
有跡象表明,說說這幾個好文章:在計算器上
Garbage Collection Synopsis, and C++
上一個類似的問題:Garbage collection vs. shared pointers
我也建議你看看scoped_ptr的。這裏的區別: shared_ptr vs scoped_ptr
OP詢問C而不是C++。我不確定您發佈的內容是否適用於C。 – jv42
@Aayush在這些文章中的一些解釋是好的和有用的。 –
- 1. 共享ptr鑄造
- 2. C++ 11共享Ptr,共享相同的引用計數器
- 3. 關於共享點LogToHistoryListActivity.Duration
- 4. 問題關於共享庫
- 5. 關於在共享實例
- 6. 關於iOS共享的幾個問題
- 7. 關於CUDA共享存儲器
- 8. 關於nginx共享主機上的Symfony2
- 9. 關於oracle服務器共享問題?
- 10. 關於iPhone SDK中的文件共享?
- 11. 關於桌面共享概念
- 12. C++:用共享和弱ptr替換原始指針
- 13. 是否加入到共享PTR參考增加引用計數
- 14. 8086大會,關於PTR運營商
- 15. 共享首選項關閉
- 16. 共享DLL - 依賴關係
- 17. android共享用戶ID用於共享特定的共享首選項值
- 18. 共享基於棱鏡4
- 19. 檢測用於共享某些內容的共享者
- 20. 加載共享依賴於其他共享庫庫
- 21. 共享時發生錯誤(iOS共享套件用於推特)
- 22. IPC ::共享的共享
- 23. 對於(* ptr)[],爲什麼printf(「%p」,(void *)ptr + 1)有效但不是printf(「%p」,ptr + 1)?
- 24. 如何通過共享框ptr訪問時使我的結構字段可變?
- 25. 我們如何處理共享/弱ptr而不會使代碼變得龐大?
- 26. 差異,* PTR和&PTR
- 27. 關於使用共享指針的評估順序
- 28. 共享工具提示不關於第二Y軸顯示值
- 29. 關於兵馬俑和Servlets /共享線程
- 30. 與watchOS共享鑰匙串2 - 所有關於項目設置?
你是什麼意思把共享ptr作爲垃圾收集策略?你的意思是比較共享指針(稱爲GC世界中的引用計數)和標記掃描?我認爲boost實現共享指針:http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm。 閱讀更多關於這裏:http://stackoverflow.com/questions/417481/pointers-smart-pointers-or-shared-pointers – smichak
@smichak是的,我想看看不同的垃圾收集技術之間的一些比較Q1。 –