美文网首页
内存五大分区

内存五大分区

作者: 兰帕德 | 来源:发表于2021-12-26 17:48 被阅读0次
    一、栈区(stack)

    由编译器自动管理。存放函数的参数值,局部变量等。操作方式类似于数据结构中的栈。
    栈是由高地址往低地址扩展的数据结构,是一块连续的内存区域。即:栈顶的地址和栈的最大容量是系统预先定好的,如果申请的空间超过栈的剩余空间时,将提示溢出溢出(overflow)。因此,能从栈获取的空间较小。

    二、堆区(heap)

    一般由开发者分配释放,如果不释放,程序结束时,可能由操作系统回收。其与数据结构中的堆是两回事。
    堆是从低地址向高地址扩展的数据结构,是不连续的内存的区域。这是由于系统使用链表存储空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。因此,堆获得的空间比较灵活,也比较大。

    三、全局区(静态区)

    存放全局变量和静态变量。初始化的全局变量和静态变量放在一起,未初始化的放在一起。

    四、 文字常量区

    寸放字符串常量,程序结束后由系统释放。

    五、程序代码区

    存放函数体的二进制代码。

    相关文章

      网友评论

          本文标题:内存五大分区

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