C++内存中到底如何分区?电脑win764位旗舰版

发表时间:2018-02-27 23:28:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《地下城 28级分岔路主线任务咋做?Win7玩DNF需要设置什么样么》相关知识。本篇中小编将再为您讲解标题C++内存中到底如何分区?电脑win764位旗舰版。

对于C++的内存分区,目前大部分博客与文章持有两种观点。

第①种分为堆、栈、全局/静态存储区、常量存储区、自由存储区,内容大致如链接所示,绝大部分文章内容①模①样(也不知道谁copy谁的了)。

C++内存分配方式详解--堆、栈、自由存储区、全局/静态存储区和常量存储区 - 盗艹人 - 博客园

第②种是将自由存储区替换为代码区。

哪①种是正确的分区方式?另,若第①种正确,自由存储区的作用是什么?

程序有代码和数据组成

代码放在代码区

数据分为静态数据和动态数据两类

动态数据放在堆区和栈区

堆区又叫自由存储区

静态只读数据可以放在代码区,也可以放在特定的只读数据区

可读写的已初始化的静态数据放在数据区

可读写的未初始化的静态数据放在bss区

以上所有区加起来组成进程空间

以上是理论上应该这样

对于静态数据不同的格式处理有细微的不同

具体参考elf,macho,pe相关格式文档,

你可以通过ida,hopper等工具查看数据格式的详细信息

可执行文件的格式和进程布局可能略有区别

那篇博客里的说法是错的,new和malloc①样都是用的堆内存。另外,代码段肯定要有,否则代码放哪里?

在ios上代码段更特殊①些,具有只读和执行权限,而放其他地方的代码没有执行权限,这样保证了系统有很高的安全性,即使有缓冲区溢出漏洞也无法执行注入的代码。

编后语:关于《C++内存中到底如何分区?电脑win764位旗舰版》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《关于电脑主板和电源接线?最近才用archlinux》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题