栈 我们经常说的数据结构堆栈,其实指的就是栈,它是一种先进后出的数据结构,从管理角度来讲,它是由操作系统分配管理的,也就是说它是规整的,内存的大小在申请之后不会发生变化。因此,它不会出现碎片化,并且读取速度非常的快。 什么样的数据存放到栈里面呢?我们经常声明的局部变量,一些基本数据类型,比如int,double,short,char等,这些数据在声明的时候,内存的大小已经确定,它们会被存放到栈中。使用栈的好处是,我们不需要管理内存的释放,这些内存会由操作系统自动释放,比如我们运行的一些函数,当我们函数结束的时候,它内部的变量申请的内存空间就会被自动释放,非常方便。 堆 相比于栈的固定大小,堆的分配非常自由,它是由程序员自己去分配的,比如程序员考虑到某些情况需要更多的内存,它就可以在堆上面申请一个足够大的内存。除此之外,内存的分配非常自由,它并不要求是连续的内存,只要有空间,都可以被拿来分配。不过这样就会导致产生很多碎片,不利于高速读取,因此堆的操作的速度要比栈慢很多。 堆主要存放的是大小不固定的内存结构,因此,我们的数组和结构体经常被存放到堆上。对于全局变量我们也会放到堆上,因为它需要可以被任何地方访问,并且不能像栈一样被操作系统回收。 https://www.cnblogs.com/guoxiaoyan/p/8664150.html https://baijiahao.baidu.com/s?id=1685244920257041395&wfr=spider&for=pc https://blog.csdn.net/qq_36834959/article/details/105573235 https://blog.csdn.net/qq_33068519/article/details/84939788
标签:操作系统,存放,内存,https,堆栈,分配 From: https://www.cnblogs.com/aikeming/p/16638371.html