zoukankan      html  css  js  c++  java
  • 进程内存空间的分布

    在冯诺依曼的体系结构中,一个进程必须有:代码段,堆栈段,数据段。

    进程的虚拟地址空间图示如下:

    堆栈段:

      1. 为函数内部的局部变量提供存储空间。

      2. 进行函数调用时,存储“过程活动记录”。

      3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈。

    数据段(静态存储区):

      包括BSS段(Block Started by Symbol)的数据段。BSS段存储未初始化或初始化为0的全局变量、静态变量,具体体现为一个占位符,并不给该段的数据分配空间,只是记录数据所需空间的大小数据段存储经过初始化的全局和静态变量。

    代码段:

      又称为文本段。存储可执行文件的指令;也有可能包含一些只读的常数变量,例如字符串常量等。

      就像堆栈段能够根据需要自动增长一样,数据段也有一个对象,用于完成这项工作,这就是堆。堆区域是用来动态分配的内存空间,用 malloc 函数申请的,用free函数释放。calloc、realloc和malloc类似:前者返回指针的之前把分配好的内存内容都清空为零;后者改变一个指针所指向的内存块的大小,可以扩大和缩小,它经常把内存拷贝到别的地方然后将新地址返回。

  • 相关阅读:
    CF833B The Bakery (线段树+DP)
    NOIP 2017 时间复杂度 (模拟)
    NOI 2018 屠龙勇士 (拓展中国剩余定理excrt+拓展欧几里得exgcd)
    中国剩余定理(excrt) 模板
    后缀自动机 模板
    luogu P4248 [AHOI2013]差异
    luogu P3975 [TJOI2015]弦论
    luogu P4770 [NOI2018]你的名字
    luogu P3726 [AH2017/HNOI2017]抛硬币
    luogu P3722 [AH2017/HNOI2017]影魔
  • 原文地址:https://www.cnblogs.com/lxy-xf/p/11075239.html
Copyright © 2011-2022 走看看