静态分配,动态分配和自动分配有什么区别?静态分配与动态分配与自动分配
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. 动态分配对象