C++内存管理
发布时间
阅读量:
阅读量
2.1 简述一下堆和栈的区别
参考回答
区别:
内存空间使用策略存在差异。系统自动管理内存资源以实现对函数参数和局部变量的有效存储;而手动内存管理机制则由程序员负责执行资源分配与回收操作
不同类型的缓存机制在运行过程中表现出不同的特性。其中一种机制(栈)采用一级缓存策略,在运行时保留在内存中,并且完成任务后立即清除内存以节省资源;另一种机制(堆)则采用二级缓存策略,并且相较于前者运行速度较慢。
堆栈数据结构不同。堆类似数组结构;栈类似栈结构,先进后出。
1.2.2 简述C++的内存管理
参考回答
内存分配方式:
在C++编程语言中,内存被划分为五个区域。这些区域包括堆(Memory Pool)、栈(Stack)、自由存储区(Free Store)、全局静态存储区(Global Static Stack)以及常量存储区。
堆,在当执行函数时(特别是在编译器优化中),局部变量都会被分配到栈中,并且在函数退出后这些变量会被系统回收。
堆,就是那些由new分配的内存块,一般一个new就要对应一个delete。
自由存储区即指那些由malloc等函数动态分配的内存块,在堆中与之极为类似的是另一个机制;然而,在这种机制下运行的对象将使用free函数来完成自身任务。
全局/静态存储区,全局变量和静态变量被分配到同一
全部评论 (0)
还没有任何评论哟~
