操作系统中程序的内存结构

    操作系统从低地址到高地址分别为正文段(代码区)、已初始化数据区、BSS(未初始化)、堆、栈。
    正文段主要存储机器指令即执行代码。这部分区域的大小在程序运行前就已经确定,并且这个区域只读。
    已初始化数据区为数据分配内存空间并保存到目标文件。
    BSS(未初始化数据)没有存放在磁盘程序文件。应为它们运行前初始值为0。正文段和已初始化数据存放在目标文件中。
    堆区用于动态分配内存,位于BSS和栈中间的区域。采用链式存储,频繁的malloc()和free()导致其效率比栈低。
    栈区由编译器自动释放,存放函数的参数值、局部变量等。函数被调用时,函数的返回类型和调用信息被存到栈中。然后函数再为本身的自动变量和临时变量在栈上分配空间。每调用一个函数一个新的栈就会被使用.栈区是从高地址位向低地 址位增长的,是一块连续的内存区域,最大容 量是由系统预先定义好的,申请的栈空间超过这 个界限时会提示溢出,用户能从栈中获取的空间较小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值