数据结构中的栈和堆,计算机系统内存中的栈和堆的理解
2016-04-13 11:26
405 查看
以下理解仅是个人理解,如有不对还请大家指出。。。。
首先数据结构中的栈是一种数据结构:
例如 数据结构中的栈定义如下:
# define STTACK_INIT_SIZE 100 //栈的初始化空间大小 存放在内存中的数据区(静态变量区)
typedef struct{ //结构体在存储时存在文件区,当运行时则存在在栈区,注意这里的栈不是结构体中的栈,而是计算设计内存中的栈。见下面分析
ElemType * elem;
int stacksize;
int top;
}
数据结构中的堆是树的一种。
计算机系统内存中的栈和堆:
计算机系统在程序运行时会将程序映射到内存中,其中运行时分为5个区:栈区、堆区、(bass区、数据区)、代码区
栈区用于存放局部变量,临时变量,传递到函数中的参数,是系统自动分配的。
堆区用于动态分批内存
这几个区的详细介绍见我转载的三篇博文。相信你看后会对栈区和堆区有更深入的了解。
也就是说数据结构中的栈和堆反应的是你设计程序时一种数据之间的额关系的体现
而计算设计系统中内存的堆和栈是在程序运行过程中计算机用于分配资源的两个区域。
首先数据结构中的栈是一种数据结构:
例如 数据结构中的栈定义如下:
# define STTACK_INIT_SIZE 100 //栈的初始化空间大小 存放在内存中的数据区(静态变量区)
typedef struct{ //结构体在存储时存在文件区,当运行时则存在在栈区,注意这里的栈不是结构体中的栈,而是计算设计内存中的栈。见下面分析
ElemType * elem;
int stacksize;
int top;
}
数据结构中的堆是树的一种。
计算机系统内存中的栈和堆:
计算机系统在程序运行时会将程序映射到内存中,其中运行时分为5个区:栈区、堆区、(bass区、数据区)、代码区
栈区用于存放局部变量,临时变量,传递到函数中的参数,是系统自动分配的。
堆区用于动态分批内存
这几个区的详细介绍见我转载的三篇博文。相信你看后会对栈区和堆区有更深入的了解。
也就是说数据结构中的栈和堆反应的是你设计程序时一种数据之间的额关系的体现
而计算设计系统中内存的堆和栈是在程序运行过程中计算机用于分配资源的两个区域。
相关文章推荐
- 使用 Libki 来管理公共用户访问计算机
- 微型计算机的始祖:Altair 8800
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
- IE7降低内存和降低CPU的几个技巧
- C#数据结构之顺序表(SeqList)实例详解
- 如何高效的使用内存
- DOS下内存的配置
- Lua教程(七):数据结构详解
- XP/win2003下发现1G的内存比512M还慢的解决方法
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- C语言内存对齐实例详解
- C++基于栈实现铁轨问题
- 数据结构之Treap详解
- 深入学习C语言中memset()函数的用法