什么是堆:堆是大家共有的空间分全局堆和局部堆。全局堆就是所有没有new分配的内存的空间局部堆就是用户new分配的内存的空间。堆在操作系统对进程 初始化的时候new分配的内存运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统要不然就是内存泄漏。 什么是栈:栈是线程独有的保存其运行状态和局部自动变量的。栈在线程开始的时候初始化每个线程的栈互相独立。每个函数都有自己的栈栈被用来在函数之间傳递参数。操作系统在切换线程的时候会自动的切换栈就是切换SS/ESP寄存器。栈空间不需要在高级语言里面显式的new分配的内存和释放
变量茬栈区 malloc在堆区
函数内声明的变量在栈区,代码段运行结束栈区内存会自动释放
malloc和new申请的内存在堆区,使用完毕需要程序员手动释放