堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
每个进程所分配的栈空间通常很小,linux下可以用 ulimit -s 查看,单位KB,测试了一台linux 64bit 主机是8M
每个进程所分配的堆空间比较大,通常在G级
生长方向:对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长。