
操作系统
文章平均质量分 70
oathevil
夢,是抹不掉的記憶
展开
-
"堆"和"栈"的基本概念(C/C++初学者必读)
<br /><br />"堆"和"栈"<br />作者:arya<br />堆(heap)和栈(stack)是C/C++编程不可避免会碰到的两个基本概念。首先,这两个概念都可以在讲数据结构的书中找到,他们都是基本的数据结构,虽然栈更为简单一些。<br />在具体的C/C++编程框架中,这两个概念并不是并行的。对底层机器代码的研究可以揭示,栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。<br />具体地说,现代计算机(串行执行机制),都直接在代码底层支持栈的数据结构。这体现在,有专门的寄存器指向转载 2010-11-15 17:10:00 · 734 阅读 · 0 评论 -
堆和栈的区别
<br />一、预备知识—程序的内存分配 <br /><br />由C/C++编译的程序占用的内存分为以下几个部分 <br />1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 <br />2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 <br />3、全局区(static): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量转载 2010-11-15 17:13:00 · 495 阅读 · 0 评论 -
堆空间、栈空间和堆栈平衡
<br /><br />堆(heap)与栈(stack)是程序存储空间上的一组概念。<br />应用程序启动时<br />程序启动时,windows的PE装载器会将PE文件(可执行文件,Unix/Linux 上是ELF)的不同部分的内容装入不同的内存区域。<br />程序的数据段包括.data段(全局变量)和.rdata段(静态变量和常量)。而PE装载器只能从程序中读出已初始化的全局变量和静态变量,并将它们放在的一段专门的初始化的数据的内存区域上。而未初始化的全局变量和静态变量则存放在一段专门的非初始化数据转载 2010-11-15 17:10:00 · 892 阅读 · 0 评论