堆和栈的异同

首先,这里的堆栈与数据结构里面的不一样


栈:stack
堆:heap


栈分配地址是从高地址往低地址连续分配(好像VC默认给栈区是1M),不过我在VC里面测试了一下只有1036096个字节即1011.813KB--不到1M
堆分配内存是由操作系统从空闲链表中寻找没有使用过的分配。


一个很简单的比方:
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。

评论

此博客中的热门博文

Linux/ARM Page Table Entry 属性设置分析

提交了30次才AC ---【附】POJ 2488解题报告

笔记