c/c++语言开发共享什么是堆栈的“标准”大小和C程序中的堆?

我已经读过Linux上的“标准”和初始堆栈大小约为8MB,Windows大约为1MB。

但堆分配如何工作? 操作系统是否为进程堆设置了“虚拟”大小,就像它对已提交和保留内存的堆栈一样?

    经典地,程序的布局在内存的低端具有“文本”(或“代码”)段,然后是固定数据(“数据”和“bss”段),后跟一个间隙,与堆栈从高记忆中向下生长。 中间的间隙变成了堆,它从数据的末尾向堆栈增长。

    线程程序,加载的共享库,共享内存等等都比较复杂。

    初始堆栈大小取决于o / s。 初始堆大小在逻辑上为零,但几乎立即增长(因为程序和共享库已加载)。

    没有一般的“标准尺寸”。 各个操作系统将具有默认大小,但通常可以使用程序映像或命令行中的相应参数进行更改。

    C在各种系统中执行,从微型微处理器只有几百字节的可用内存到具有数百GB的巨大处理器arrays。

    在较大的系统(包括大多数Windows和Linux环境)中,堆栈和堆将分配给可以扩展的段,因此不需要预先保留最大大小的物理内存。 但是,许多微型计算机缺少内存映射硬件,并且必须预先保留大小(尽管有时堆栈和堆会相互增长,因此只有一个共同的限制)。

      以上就是c/c++开发分享什么是堆栈的“标准”大小和C程序中的堆?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560178.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐