世界杯欧洲区预选赛_世界杯足球几年一次 - chinaacecloud.com



内存分配有几种方式?堆和栈有什么区别?(申请方式、效率、方向)

1.栈上分配:

在执行函数之前,函数内部的局部变量都可以在栈上创建,函数执行完毕之后会自动释放

2.静态全局存储区

全局变量和静态变量

3.堆上分配

由程序员分配,好比new,free,malloc free

1.申请方式不同:

栈是由操作系统自由分配和释放,堆是由程序员手动申请释放

2.申请大小的限制:

栈是向低地址申请的空间,一块连续的内存,也就是说,栈的大小和地址是由系统预先规定好的,如果申请的空间超过栈的剩余空间就会提示overflow

堆的申请是向高地址扩张的,是不连续的内存区域,这是由于系统使用链表来存储的空闲内存地址

3.申请的效率

栈使用的是一级缓存, 它们通常都是被调用时处于存储空间中,调用完毕立即释放;

堆则是存放在二级缓存中,速度要慢些。