我在堆中存在嚴重問題,因爲在之前的程序中,我沒有刪除指針變量。如何清理內存空間/堆以運行當前程序?C++清理堆
C++清理堆
回答
對於使用new/malloc或其他此類函數在堆上進行的每個分配,必須刪除/釋放完成時使用的資源。
C++提供了一些簡單的方法來實現這一點,使用構造函數分配資源和析構函數來釋放資源。
然後有很多聰明的方式與std :: auto_ptr甚至其他智能指針,可以幫助你管理這個。
基本上你已經分配了它 - 所以這是你的工作來釋放它。
我不記得我創建的代碼/動態變量/指針,因爲我刪除了代碼。任何其他方式來清理呢? – teamaster 2012-08-14 01:00:08
是的,但通常操作系統會在進程死機後刪除所有內容,通常所有內容都是沙盒,所有現代操作系統都採用一些內存保護系統。 – user827992 2012-08-14 01:01:41
清潔什麼?理論上你必須不分配內存 - 重新啓動機器將是一個可行的方法 - 實際上大多數操作系統將在程序退出時釋放內存。 – 2012-08-14 01:01:59
殺死有問題的進程,然後操作系統會爲你清理它們的內存。
不保證:-) – 2012-08-14 01:04:54
不按標準的課程,但是在現代操作系統上(例如OP所說的太陽)它會。 – tobyodavies 2012-08-14 01:07:12
同意 - 但在每個操作系統上「有效」的答案 - 即使是要創建的答案也要優於平臺特定的示例。依靠非標準功能使維護程序員保持業務。 VMS總是將本地變量設置爲零類型值 - 不是便攜式:-) – 2012-08-14 01:09:14
- 1. Lua堆棧清理(C API)
- 2. C++中的清除堆棧
- 3. C#DataGridView清理
- 4. C++錯誤清理
- 5. 清理量角器堆棧跟蹤
- 6. 我該如何清理增長堆?
- 7. 日誌的清理堆棧跟蹤
- 8. 幫助理解C堆棧
- 9. C清理錯誤/終止
- 10. C#使用清除處理
- 11. 清理C:\ Parallels \ Plesk \ etc \ crashdumps
- 12. C(++)和Lua清理內存
- 13. C++ ofstream刪除和清理
- 14. C++內存管理澄清
- 15. 清理Objective-C代碼
- 16. C#託管線程清理
- 17. C或C++堆內存管理實現
- 18. 使用C/C++/Java程序理解堆棧和堆棧
- 19. 如何清除堆?
- 20. 清除堆內存
- 21. 在C++中清理DirectX紋理
- 22. C#遠程處理後的Serverside清理
- 23. C++指針和堆棧內存管理
- 24. C++堆棧函數和錯誤處理
- 25. C++堆棧流行通用理論
- 26. 內存管理,堆損壞和C++
- 27. c#中的堆碎片整理?
- 28. ArgumentOutOfRangeException是未處理的C#堆棧
- 29. 活動堆棧未清除
- 30. 清除活動堆棧android
你的意思是你有內存泄漏?如果您的計算機內存不足,請重新啓動它。 – Annabelle 2012-08-14 00:55:36
我們在這裏談論什麼樣的系統?普通的Windows/Mac OS/Linux機器?嵌入式系統? – 2012-08-14 00:56:18
我正在使用安全外殼通過mac osx命令行連接到太陽計算機。 – teamaster 2012-08-14 00:57:42