讲到C程序的存储空间布局时都会给出这个图:
或者这个图:
注意一下几点:
1.堆区大小是基本固定的,跟内存总线有关,常见的是32位,所以算出来总的 可使用的虚拟内存4G,内核使用1G,栈大小一般可以设置,默认大多数是8M,其他的微乎其微,所以推算出堆空间可以最大接近3G..
2.堆的分配和释放是通过内核来管理的。
3.堆地址和栈地址的生长方向取决于他的CPU是大端还是小端
讲到C程序的存储空间布局时都会给出这个图:
或者这个图:
注意一下几点:
1.堆区大小是基本固定的,跟内存总线有关,常见的是32位,所以算出来总的 可使用的虚拟内存4G,内核使用1G,栈大小一般可以设置,默认大多数是8M,其他的微乎其微,所以推算出堆空间可以最大接近3G..
2.堆的分配和释放是通过内核来管理的。
3.堆地址和栈地址的生长方向取决于他的CPU是大端还是小端