堆(HEAP):
NEW的东西在这里;
New分配内存时是在整个进程的内存空间分配,就是分配给这个进程的物理内存+虚拟内存(32位4G),所以地址不连续;超过4G就崩了;
速度慢,如果碰到需要从硬盘交换数据速度更慢;
需要自己delete,麻烦;
安全,一般不会撑爆进程的地址空间;
栈(STACK):
局部的东西在这里
nStackSize
Specifies the size in bytes of the stack for the new thread. If 0, the stack size defaults to the same size stack as the creating thread.
如果超过这个size就会报stack overflow,默认1M,或者2M;
速度快;
不需要自己释放,简单;
不安全,申请大数组的时候,或者被嵌套申请大数组的时候可能造成莫名崩溃;
所以,数组最好不要用最原始的,用vector等封装过的,或者自己new,自己del。
一个小习惯可能会让程序更健壮!