堆与栈的区别有: 1、管理方式不同。栈由系统自动分配,系统释放,执行效率高;而堆是人为申请开辟,人为释放,执行效率低;2、空间大小不同。栈一般获得的空间较小,而堆获得的空间较大;3、空间连续性不同。栈是连续的地址空间,而堆是不连续的地址空间。4、生长方向不同。堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内存地址由高到低。5、存放内容不同。栈存放的是函数参数、局部变量等内容。而堆是动态分配的内存段 参考 堆和栈的区别有哪些?C语言的内存分配之Text、Heap、Stack、Data、BSS介绍