堆栈作用及其区别

转:

堆栈作用及其区别

 

 

堆栈: 堆和栈都是内存中分配的一块有限的区域,用来分配存放各种数据
new的对象放在堆中,保存在堆中的数据,如果不使用delete释放掉的话,就会堆积在堆区里面,要是长期积累的话,就会导致堆区沾满,导致系统崩溃的情况

堆的作用:堆的内存是有程序员自己分配的,在使用了malloc()或者new之后,系统会从堆中查找大小合适的空位,并将地址返回,数据就存在那里,对的内存是随机分配的,可能会出现小块的空缺,导致塞不下大块的数据,出现碎片化的问题

栈的作用:栈是由系统自动分配给局部变量或函数参数的,并且紧致的朝一个方向分配,
先进后出的原则,就像是在一个盒子中,放东西

转:

堆栈作用及其区别