美文网首页
内存模型

内存模型

作者: 陈道乐 | 来源:发表于2018-10-29 17:32 被阅读0次

    一, 结构(linux)

    内存从高向下,

    #################
           栈
    #################
    堆(自由存储区)
    #################
     全局/静态存储区
    #################       
    代码区(机器指令)
    

    1. 栈

    由系统管理, 栈内存只在程序运行时出现,在函数内部使用的变量、函数的参数以及返回值将使用栈空间,栈空间由编译器自动分配和释放。其操作方式类似于数据结构中的栈。

    2. 堆(实现自由存储区)

    只有通过malloc, new 分配的空间才会在堆上, new 可以由malloc来实现,malloc 和 new 创建的对象是在自由存储区山的,

    3. 全局/静态存储区

    该区域在C语言中区分为两个:未初始化, 初始化; 在C++里面是不区分的,只初始化一次

    4. 代码段

    存放代码的数据的地方, 只读

    二,内存生长方向

    1.栈的地址是由高向低增长的

    2.堆得地址增长方向是由低到高向上增长的

    三,内存存储类型

    ####################
    #      #  已初始化 #
    # 只读 #############
    #      #  未初始化 #
    ####################
    

    四,寄存器类型

    ########################################################
    #                 #                                    #
    # 优化(写时复制)#  volatile(直接写入内存, 原子操作) #
    #                 #                                    #
    ########################################################  
    

    相关文章

      网友评论

          本文标题:内存模型

          本文链接:https://www.haomeiwen.com/subject/xwfitqtx.html