靜態分配,動態分配和自動分配有什麼區別?靜態分配與動態分配與自動分配
9
A
回答
11
會有特定語言的細節,但總體思路是:
- 靜:在程序啓動時分配,存在着程序的整個生命
- 自動:在進入分配成塊,存在該塊的持續時間
動態分配需要更多的解釋:它在分配時進行分配(例如,使用類似'new XXX'的東西)。在C++的(大部分實現中),它會一直存在,直到你明確地刪除它。使用大多數較新的語言(例如Java,C#)它會一直存在,直到垃圾收集器確定它不再可訪問,此時它將自動銷燬。
並非所有的語言都有三種形式的分配。在某些情況下(例如Java),即使支持某種形式的分配,也存在限制,例如允許爲內置類型自動分配,但需要爲對象類型(即類的實例)進行動態分配。
3
靜態分配是在第一次加載時爲應用程序預留的內存。這部分內存僅保留在該應用程序中,並在程序關閉後再次使用。
動態分配是根據需要分配的內存,並在不再需要時釋放/釋放。堆和堆棧是可以動態分配的內存區域的示例。
相關問題
- 1. 動態與靜態內存分配
- 2. 動態分配
- 3. 動態分配C
- 4. 動態分配ID
- 5. 動態分配,C
- 6. 靜態類分配
- 7. UITableView動態與靜態單元分配性能/內存使用
- 8. 靜態與動態CUDA共享內存分配的性能
- 9. 與新的C++動態分配
- 10. 動態分配mpfr_t矩陣與std :: vector
- 11. 與charactere陣列動態分配
- 12. 與動態分配的內存
- 13. 動態分配類,與繼承問題
- 14. 對象分配與動態變量
- 15. 對象池與動態分配
- 16. 動態內存分配與陣列
- 17. 動態分配動態分配的結構列表覆蓋
- 18. 動態分配對象內的動態分配
- 19. 分配的onclick函數與靜態值
- 20. 動態分配'活動'類
- 21. C#動態:動態分配屬性
- 22. Fortran:動態數組與自動數組避免內存分配
- 23. qsort in C(動態分配)
- 24. 動態分配表變量?
- 25. Logstash動態分配模板
- 26. 學習動態分配
- 27. 動態分配DIV ID
- 28. 動態內存分配
- 29. Eigen和動態分配
- 30. 動態分配對象