在实模式存储管理方案下,系统的内存地址空间的布局一般可以分为五个段:代码段(text)、数据段(data)、boss段(boss)、堆(heap)、栈(stack)。

下面以一段代码为实例:

#include<malloc.h>

unsigned char gvCh;

unsigned short gvShort;

unsigned int gvInt = 0x12345678;

unsigned long gvLong = 0x87654321;

void main(void)

{

unsigned char array[10],*p;

p = malloc(10*sizeof(char));

while(1);

}

在上面程序中与while语句相对应的可执行代码存在在代码段。

全局变量gvCh和gvShort由于没有设置初始值,所以在bss段中。

全局变量gvInt和gvLong有初始值,所以放在data段中。

指针p和数组array,他们都只main函数的局部变量,所以寻访在栈中。

malloc函数申请的空间存在堆中。

有关代码段、数据段、BOSS段、堆、栈的存储位置问题。。。相关推荐

  1. linux代码段映射,bss,data,text,rodata,堆,栈,常量段与其各段在物理存储中关系

    本文想从linux出发[目前还想可不可以从51单片机出发],解答程序代码和各种数据结构是如何存储(映射)到存储区的. 目前未完成整理,还是初稿的想法.bss段: BSS段(bsssegment)通常是 ...

  2. JVM Runtime Data Area(运行时数据区中的堆/栈/方法区讲解)

    JVM的组成 JVM由4大部分组成:ClassLoader .Runtime Data Area .Execution Engine .Native Interface.我们这里重点讲得是Runtim ...

  3. 堆/栈/动态存储方式/静态存储方式

    动态存储方式 所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式.动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放. 典型的例子是函数的形式参数,在函数定 ...

  4. 【编译原理笔记15】运行存储分配概述,静态存储分配,栈式存储分配,调用序列和返回序列,非局部数据的访问,符号表,符号表建立

    本次笔记内容: 7-1 运行存储分配概述 7-2 静态存储分配 7-3 栈式存储分配 7-4 调用序列和返回序列 7-5 非局部数据的访问 7-6 符号表 7-7 符号表建立 本节课幻灯片,见于我的 ...

  5. 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第八章 Hadoop再探讨

    第8章 Hadoop再探讨 Hadoop是一种开源的大数据处理架构,广泛应用于大数据技术领域.然而,Hadoop在诞生之初,在架构设计和应用性能方面存在一些不足之处,随着其后续的发展过程,逐渐得到了改 ...

  6. java 常量存储_JAVA 存储空间 寄存器 堆栈 堆 常量存储 非RAM存储

    1.寄存器 这是最快的存储区,因为它位于处理器内部,数量极其有限,所以寄存器根据需求进行分配,你不能直接控制,也不能在程序中感 觉到寄存器存在的任何迹象. 2.堆栈 位于通用RAM(随机访问存储器)中 ...

  7. java 堆 栈 ===_Java堆,栈,堆栈

    栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器 在java中,所有基本类型和引用类型都在栈中存储. ...

  8. 实例说明代码段(.text)、数据段(.data)、bss段、只读数据段(.rodata)、堆栈的划分依据

    目录 程序实例介绍各个段内容.分析段(segment)分布 分析代码段(.text).数据段(.data).bss段.只读数据段(.rodata)划分依据 程序实例介绍各个段内容.分析段(segmen ...

  9. 代码段+数据段+bss段+stack+heap

    在学习之前我们先看看ELF文件. ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具 ...

最新文章

  1. 从共享租车成绿色消费首选,看共享经济未来
  2. Leetcode: Implement strStr()
  3. VMware共享文件夹遇到的问题
  4. c实现三角形角度大于一个值_初中数学三角形知识点小结
  5. 使用Ping命令解析主机名解析出来的是IPv6
  6. Javascript:各种定位clientX、pageY、screenX、offsetY区别
  7. CenterOS7安装redis
  8. 如何在Excel里输入可以打钩的选择框?
  9. 学好Python能做什么 python就业方向有哪些
  10. LANP环境搭建(yum安装)
  11. iOS 图片裁剪功能。
  12. 信息学奥赛一本通 1247:河中跳房子 | OpenJudge NOI 1.11 10:河中跳房子 | 洛谷 P2855 [USACO06DEC]River Hopscotch S
  13. 什么是软件的生命周期?
  14. C++——动态空间分配
  15. 【408计算机考研】|【2018统考真题-41】| 给定一个含 n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数
  16. shell脚本 sh shebang “#!/bin/sh“
  17. 如何使用phpdoc生成PHP文档
  18. Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
  19. php新浪微博 登录接口文档,最新新浪微博网站接入API接口的具体步骤wordpress
  20. logback修改第三方包日志打印

热门文章

  1. scikit-learn——快速入门 - daniel-D(转)
  2. Linux设备树语法详解【转】
  3. (21)Spring Boot过滤器、监听器【从零开始学Spring Boot】
  4. 南阳14(会场安排问题)
  5. 从市场角度看服务器虚拟化
  6. linux下共享库的制作及常见的问题
  7. h5端呼起摄像头扫描二维码并解析
  8. 一位准程序员对软件行业的8个问题
  9. RapidMiner数据挖掘入门
  10. 负载均衡会话保持技术、原理、产品(以F5为例)