0%

内存5大分区

内存主要分为5大区:

  1. 栈 stack
  2. 对 heap
  3. 全局区/静态区
  4. 常量区
  5. 代码区

这张图详细的介绍了5大分区的分配情况。

栈是从高地址向低地址开始分配,了解汇编的同学应该知道栈顶和栈底,这两个寄存器,栈顶处与低地址区,栈底处于高地址区。

堆是从低地址向高地址开始分配。在堆中获取数据相对比较麻烦,所以都是在栈中开辟空间指向堆。

当栈和堆有一方不断开辟空间,导致两个处于临界点时,就会发生堆栈溢出。