首先,来谈谈C++的5个存储区:
1.栈:是分配给函数局部变量的存储单元,函数结束后,该变量的存储单元自动释放,效率高,分配的空间有限。
2.堆:由new创建,由delete释放的动态内存单元。如果用户不释放该内存,程序结束时,系统会自动回收。
3.自由存储区:由malloc创建,由free释放的动态内存单元,与堆类似。
4.全局(静态)存储去:全局变量和静态变量占一块内存空间。
5.常量存储区:存储常量,内容不允许更改。
本文主要是来讨论栈和堆的区别,以及深入到C++汇编中来研究。先声明一下,以下的汇编都只是节选主程序的一块。
在linux下,编辑程序aaa.cpp,vim aaa.cpp
然后退出保存
输入命令
g++ -g -o aaa aaa.cpp
注意必须要参数-g,否则不会有汇编信息

本文探讨了C++中的5个存储区,重点分析了栈和堆的区别。通过示例代码和汇编语言,展示了栈上局部变量、动态内存分配以及类对象在内存中的创建和释放过程,强调了理解内存分配对于C++编程的重要性。

1337

被折叠的 条评论
为什么被折叠?



