堆和栈的异同

原创文章,转载请注明出处.转载自: Li Haifeng's Blog
本文链接地址: 堆和栈的异同

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


栈:stack
堆:heap


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


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

From Li Haifeng's Blog, post 堆和栈的异同

Post Footer automatically generated by wp-posturl plugin for wordpress.

分享到: