堆和栈

从前,程序妈妈有两个娃娃,一个叫堆,一个叫栈,他们长得不一样,构成也不同,一个是亲生的 一个是后面养的
一天堆和栈就不服气的说, 

栈:我是亲生的 怎么样
堆:虽然你是亲生的,计算机也喜欢我啊

栈:我拿钱(内存)比你快

堆:我自己挣(动态分配),而且每次可以挣得更多,你妈给的钱少(系统申请栈都是固定的)

栈:我比你好看(栈结构简单)
堆:我虽然比你长得着急一点,但是我比你厉害(就是用途更广,能做更多的功能)

栈:不服气, 我做了事情就不用管了 (就是系统会处理释放的事情)

堆: 自立更生,艰苦奋斗💪(自己申请的内存,自己要释放)




程序妈妈👩过来调节道,你妈都是我的好帮手,同样重要,你妈要相互配合,这样才能当我的好帮手,两个调皮😝开心的笑了





总结

1. 栈 是由系统分配,释放,结构简单,一般存放值类型,函数指针之类的 

2. 堆 是动态分配,用二叉树表示,容易产生碎片,效率要低一些,释放必须要自己来做,不然就会出意外的
展开
6