静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。
栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自己创建和销毁
对于栈对象,仅在其定义的程序块运行时才存在;static对象在使用之前分配,在程序结束时销毁
除了静态内存和栈内存,每个程序还有一个内存池。这部分内存被称作自由空间(free store)或堆(heap)。程序用堆来存储动态分配的对象——即,那些在程序运行时分配的对象。动态对象的声明周期由程序来控制,也就是说,当动态对象不再使用时,我们的代码必须显式的销毁它们。
参考资料:C++ Primer 5th
heap(堆)和stack(栈)的区分
最新推荐文章于 2022-11-13 14:14:08 发布