内存分区
内存分区分别是堆,栈,自由存储区,全局/静态存储区,常量存储区和代码区。
面试题,能说下你了解的c++内存管理吗?
c++内存管理分为5个区,分别是堆,栈,全局/静态存储区,常量区和代码区。
栈区:在执行函数时,函数内的局部变量的存储单元可以在栈上创建,函数执行结束时这些存储单元被自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆区:就是由new分配的内存块,它们的释放编译器不去管,用我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收,
全局/静态存储区:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据,例如:局部static变量,全局static变量,全局变量和常量。
常量存储区:是一块比较特殊的存储区,它里面存放的是常量字符串,不允许修改。
代码区:主要存放程序的二进制代码。