[英]C++, Seg Faults, and Memory Management
我正在從Java轉向C ++並且非常喜歡它。 我不喜歡的一件事是根本不了解內存,因為Java過去常常為我做這件事。
我已經購買了一本書:內存作為C和C ++中的編程概念 - Frantisek Franek
我是否有一些很好的網站可以交互學習C / C ++和內存使用(教程,論壇,用戶組)?
內存管理在C ++中幾乎是自動的(有一些注意事項)。
大多數時候不動態分配內存。
使用局部變量(和普通成員變量),它們將自動構造和銷毀。
當你需要指針時使用智能指針。
首先使用boost :: shared_pointer <T>而不是指針。
這將使您走上正確的路徑並在錯誤的時間意外刪除內存並且90%的代碼將正確釋放(不幸的是循環會導致問題(僅在泄漏方面)並且您需要相應地進行設計(但我們有其他智能指針來處理周期weak_ptr))
我的基本規則是類永遠不會包含RAW指針。 始終使用某種形式的標准容器或智能指針。 使用這些; 析構函數調用變為自動。
一旦你感覺開始閱讀其他智能指針以及何時使用它們:
試試這些:
http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/memory-management/
http://www.cantrip.org/wave12.html
http://linuxdevcenter.com/pub/a/linux/2003/05/08/cpp_mm-1.html
在wikibook: http : //en.wikibooks.org/wiki/C++_Programming/Memory_Management
本文將比較Java內存管理運算符與C ++等價物: http : //www.javamex.com/java_equivalents/memory_management.shtml
http://www.infosys.tuwien.ac.at/Staff/tom/Teaching/UniZH/CPP/slides/cpp_07.pdf
希望這些能幫到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.