C++的内存模型
C++的内存包含4个大区,它们分别是代码区、全局区、栈区和堆区。
以下将对它们的分区进行进一步的阐述。
- 代码区:对于一段代码,首先要经过编译之后生成可执行文件才能执行,在Windows下通常为以.exe结尾的文件,而C++将这样的可执行代码单独存放在内存的一个固定区域,也就是说代码区在程序执行前就已经存在。
- 全局区:全局区存放的内容包括静态变量、全局变量、全局常量以及字符串常量。请注意全局常量是指在函数体外使用const申明的常量。与代码区相同的是,全局区在代码执行之前就已经存在。
- 栈区:栈区包含的内容有局部变量和形参值,它由编译器进行管理。值得注意的是,栈区在函数执行完成后依然会保留一次,当再次访问后编译器将会把它释放。在函数执行完成后继续访问局部变量是非法的,这里只是为了阐明C++对栈区的管理才进行这样的操作说明。
- 堆区:堆区由程序员进行管理,如果程序员并未处理,那么它将在程序执行完毕后释放。使用关键词new可以向堆申请存储区。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能