C++程序内存布局
来源:互联网 发布:拍照解题的软件 编辑:程序博客网 时间:2024/06/05 21:13
下面 解释图片映射的信息
从低地址到高地址
代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。
数据段:数据段用来存放可执行文件中已初始化全局变量
BSS段:BSS段包含了程序中未初始化全局变量,在内存中bss段全部置零。
堆(heap):堆是用于存放进程运行中被动态分配的内存段,它大小并不固定,可动态扩张或缩减。当进程调用malloc/new等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减),连续两次申请的堆空间并不是连续的
memory mapping segment :这里 就是 之前在做FTP系统时 用MMAP()
函数映射的区域 mmap的作用是 将外存上的内容映射到内存中来
栈:栈是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味这在数据段中存放变量)。除此以外在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也回被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。
阅读全文
0 0
- c程序内存布局
- C程序内存布局
- C程序内存布局
- c程序内存布局
- C程序内存布局
- C程序的内存布局
- C/C++程序内存布局
- C语言程序内存布局
- C语言程序内存布局
- C语言程序内存布局
- C程序的内存布局
- linux里面C程序内存布局
- 一个c程序的内存布局
- C语言程序的内存布局
- C语言程序的内存布局
- 字节序,C程序内存布局
- C语言程序的内存布局
- C语言程序的内存布局
- 5-6 打印学生选课清单 (25分)
- 计步器UIStepper
- SpringBoot+Groovy使用外部tomcat实例
- Java如果不希望某类中的public方法被重写,应改?
- 作业规划进程crond
- C++程序内存布局
- 8-JavaScript设计模式——门面模式
- PAT-A-1061. Dating (20)
- macOS Sierra安装及使用gdb
- 虚拟机 VMware Workstation 12 安装与激活 图文教程
- leetcode561. Array Partition I
- 折半插入排序
- 如何创建快速联系人标记
- [Leetcode]_32 Longest Valid Parentheses