1 自己定义的数组最大不能超过2M(因为栈的大小为2M)如果非要定义很大的数组 则要分配在堆上 采用malloc函数
2 三个内存分配函数
vmalloc kmalloc malloc
vmalloc 分配较大的内存 虚拟地址连续 物理无连续
kmalloc 分配较小的内存 虚拟地址连续 物理连续
malloc 分配的内存在堆上 物理不一定连续 虚拟地址连续
3 进程创建
fork () vfork() clone()
vfork():保证子进程先运行 等子进程调用exec exit后 父进程才调用
clone() 有选择性的继承父进程的资源 不止是父子关系 还可以是兄弟关系
4 堆栈溢出的原因
一种是:定义的局部数组太大 第二种是 递归深度太深