栈(stack)和堆(heap)的区别?
一、内存分配方式不同栈区(stack):编译器自动分配释放堆区(heap):一般由程序员分配释放二、申请方式不同栈区(stack):由系统自动分配堆区(heap):C语言【malloc分配空间,free释放】C++【new分配,delete释放】三、申请效率不同栈区(stack):速度快,程序员不可控堆区(heap):速度较慢,程序员可控总结:栈使用快捷,但自由度小;堆比较麻烦,但自由度大。