我之前以为堆栈就是一个名词,现在听别人说才知道,堆是堆,栈是栈,是不一样的!那么,这两者有神马区别啊??怎么用??

上传的附件
你的回答被采纳后将获得: 8点积分 (将会扣除手续费1点积分。)

keyboard_arrow_left上一篇 : 想问下什么是双缓冲绘图技术?怎么理解呢? 你知道《WINDOWS黑客编程技术详解》这本书吗 : 下一篇keyboard_arrow_right

2个回答

Foooooooood
2019-01-08 08:47:05

  • 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等

  • 栈是向低地址扩展的数据结构,是一块连续的内存的区域。是栈顶的地址和栈的最大容量是系统预先规定好的,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数 )

  • 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收

  • 堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存

Carewho
2019-03-27 09:59:42

局部变量存储在栈里,全局变量存储在堆里

精彩评论

  • 算法
    这是什么题目啊。。读了两遍都看不懂意思。。。尴尬,,ԾㅂԾ,,
    2019-09-05 19:04:39 thumb_up( 2 )
  • 请问机器学习怎么入门?
    对于机器学习的入门学习,我建议你在理论上使用西瓜书,然后实践可以参考机器学习实战,这本书是理论和实践相结合,适合新手,我本人就是学这个的,入门也是这么搞的
    2019-07-08 10:14:57 thumb_up( 4 )
  • 好多知识还不会,开始焦虑了,该怎么办??
    现在自己多找几个项目做做,用自己喜欢的语言来编程,明年春天先找份实习。
    2019-08-31 14:28:58 thumb_up( 3 )
  • 好多知识还不会,开始焦虑了,该怎么办??
    现在的孩子就这样,在学校的时候不珍惜,等离开了才后知后觉错过了很多。。。PS:我也是个苦逼毕业生
    2019-08-25 08:46:51 thumb_up( 1 )
eject