【C语言】Linux 下C程序的内存镜像

1. 栈(stack):函数调用栈,非静态局部变量。

2. 堆(heap):用户用时自己申请 ,用完自己释放。

3. 文件映射区:文件映射区就是进程打开了文件后,将这个文件的内容从硬盘读到进程的文件映射区,以后直接在内存中操作这个文件,读写完了后在保存时再将内存中的文件写到硬盘中去

4. 数据段(.data):(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

(1)显式初始化为非0的全局变量

(2)显式初始化为非0的static局部变量

5. bss段:(Block Started by Symbol)BSS段通常是指用来存放程序中未初始化的或者初始化为0的全局变量和静态变量的一块内存区域。特点是可读写的,在程序执行之前BSS段会自动清0。

(1)显式初始化为0或者未显式初始化的全局变量

(2)显式初始化为0或未显式初始化的static局部变量

6. 代码段(.text):通常是指用来存放程序执行代码的一块内存区域。

7. 只读数据段(.rodata):只读数据段就是在程序运行期间只能读不能写的数据,const修饰的常量有可能是在只读数据段的,

8. 保留区域。

猜你喜欢

转载自blog.csdn.net/xiaoyu_wu/article/details/121967047