c++ 程序的内存分配
C++程序在执行时,将内存大致分为以下几个区域:
-
栈:系统自动分配的空间,只要不特殊声明,就定义在栈区,函数的区域也在栈上。栈是向下增长的。(const 在栈里)
堆:使用动态内存分配的方式可以申请堆空间,用完要手动释放。new malloc
全局区:全局变量、静态变量(static),生命周期是程序整个运行过程中。
常量区:代码中的数字,字符等常量,例如’a’,—1.2等
代码区:存放可执行代码,避免频繁的读硬盘
这四个区域的意义在于,不同的区域存放不同的数据,赋予不同的生命周期,给程序员更大的操作空间。
在程序编译后,生成了.exe可执行文件,未执行该程序前分为两个区域:
- 代码区:存放CPU执行的机器码。
- 数据区:存放已初始化的全局和静态变量,常量数据(如字符串常量)。
分类:
cpp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)