内存分栈区,静态区,堆区,代码区
栈区:
由系统按栈原则管理
短命,函数执行完则释放
用户无法干预变量的诞生和消亡
千万不能返回指向栈内存的指针!
堆区:长命,无名,用户干预变量的内存和消亡,在程序运行时动态分配内存,申请可能失败。
calloc 指定申请几个小块,每小块的空间大小, 且赋了初值
int *p = (int *)malloc(sizeof(int)*10);
free(p);p = NULL;
静态区:
不按栈原则管理,长命,但局部静态变量仍受“作用域”的制约(只做一次初始化)