转载:C/C++的堆和栈详解 - C++学习_逸璞丷昊-CSDN博客_c++ 堆和栈
这篇把程序分段讲的很好
转载:再谈应用程序分段: 数据段、代码段、BSS段以及堆和栈 - 知乎 (zhihu.com)
再加个图片
比较清晰
重点:
1.堆栈是先进后出结构
2.堆的空间远大于栈的空间
3.栈是线性结构,堆是链表结构
通常说一段程序由text段、data段、bss段组成,指的是存储的时候。
程序运行时(运行态),此时需要另外两个域:堆和栈。正在运行的程序:代码段 + 数据段 + BSS 段 + 堆 + 栈。
事实上,运行态严格来说不是真正的物理存储结构,而是linux 为每个进程虚拟的地址空间(32位 操作系统对进程而且是虚拟的4G地址空间)。
一段程序主要组成如下: