一个进程的内存区域分为静态存储区,代码区,动态数据区和一块存放常量的区域
1,静态存储区是从小到大的地址增长的,一般全局变量和静态变量就放在这里,初始化的全局变量和静态变量在一块区,未初始化的在另外一块区
2,动态存储区分为堆和栈两种,
栈是由编译器自动分配释放的,在栈上存取数据比通过指针在堆上存取数据快些,栈是先入后出的,一般是由高地址向低地址生长
堆一般有程序员控制,程序结束时由os回收
堆和栈的分配如下图