1.
栈是系统根据变量大小自动分配空间的
堆是你用new,malloc等手动分配空间的2.
栈内存区的地址是连续的,由系统控制速度较快而
堆内存区的地址是不连续的,它是系统将空闲内存块链接起来的链表,
1 代码区:顾名思义就是存放运行的代码的
2 全局数据区: 存放全局数据和静态数据以及常量.
3 栈区 函数调用时的返回地址,参数压栈,局部变量,返回数据等都存放在栈区.
4 堆区,存放程序动态分配的内存(new,malloc等函数分配的)
栈内存是由系统自己分配和释放的,而堆内存要由程序员自己全全控制的,否则会出现内存泄露
csdn 讨论帖
本文详细解释了栈和堆两种内存管理方式的区别。栈由系统自动分配和回收,主要用于存储函数调用过程中的局部变量等信息;堆则由程序员手动分配和释放,用于动态分配内存。此外还介绍了程序运行时内存的四个主要区域:代码区、全局数据区、栈区及堆区。
2252

被折叠的 条评论
为什么被折叠?



