https://www.jianshu.com/p/ec17d738327f
2. 代码可执行文件的内存占用:【https://blog.youkuaiyun.com/u012942555/article/details/48876447】
首先要来理解一下可执行文件加载进内存后形成的进程在内存中的结构,如下图:

具体一些,函数内部定义的变量,在函数执行完毕后,就会出栈。

代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。
数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。
BBS区:存放的是未初始化的全局变量和静态变量。
栈区:由编译器自动分配释放,存放函数的参数值、返回值和局部变量,在程序运行过程中实时分配和释放,栈区由操作系统自动管理,无须程序员手动管理。
堆区:堆是由malloc

本文探讨了数据结构的应用场景,包括代码区、数据区、BBS区、栈区和堆区的内存分配,以及堆栈与变量内存分配的关系。同时讲解了全局变量与静态变量的异同,强调静态变量在多源文件程序中的作用和保护机制。
最低0.47元/天 解锁文章
258

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



