heap(堆)和stack(栈)的区分

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

发布了65 篇原创文章 · 获赞 4 · 访问量 1009

猜你喜欢

转载自blog.csdn.net/CLZHIT/article/details/103672626
今日推荐