C/C++中程序内存区域划分:
1. 内核空间:用户无法对这块空间进行读写,该空间是专门用来跑操作系统的。
2. 栈区:在调用函数时,函数调用空间、函数内局部变量、函数参数的存储单元都是在栈区上创建的,函数调用结束时这些存储单元自动被释放。
3. 堆区:一般由程序员自主的动态内存开辟和释放,若程序员不释放,程序结束时可能由OS回收。动态分配方式类似于链表。
4. 数据段:就是之前所说的静态区,主要用于存放全局数据、静态数据。
5. 代码段:用于存放代码经过编译链接后的二进制可执行程序和只读常量。
实际上普通的的局部变量是由放栈区分配的空间,而栈区的特点是在上面创建的变量出了作用域就自动销毁。而对于用static修饰的变量存放到了数据段(静态区),数据段的特点是在上面创建的变量,直到程序结束才会销毁,故生命周期长。而在堆区上开辟的空间特点是能够自主的调整其大小。
热门文章
- 系统设计限流算法及其周边
- 猫咪三针打完多久可以出门(猫咪三针打完多久可以出门了)
- 面试官:RabbitMQ过期时间设置、死信队列、延时队列怎么设计?
- 3月29日最新Free Clash Meta订阅 | 21.8M/S|2025年Clash/V2ray/Shadowrocket/SSR免费节点地址链接分享
- 动物疫苗生产厂家排名榜单图片 动物疫苗生产厂家排名榜单图片大全
- 3月17日最新Free Clash Meta订阅 | 21.5M/S|2025年Shadowrocket/SSR/V2ray/Clash免费节点地址链接分享
- 2022公务员国考报考条件及时间(2022公务员国考报考条件及时间表)
- 开一家宠物食品厂多少资金 开一家宠物食品厂多少资金啊
- 宠物医院医生劳动合同(宠物医院用工合同)
- 中国最大猫粮生产基地在哪里 中国最大猫粮生产基地在哪里啊