C语言——内存管理
宗旨:技术的学习是有限的,分享的精神是无限的。
//变量的存储布局(伴随初级程序员和高级工程师一生的)
静态区:全局变量和static变量,初始化的全局变量和静态变量放在一块区域,未初始化的全局变量和和未初始化的静态变量在相邻的的另一块区域。生命周期为整个程序,由编译器编译的时候分配;
栈:局部变量,函数参数;栈上的内容只在函数的范围内存在,当函数运行结束,内容自动销毁;特点是效率高,但空间大小有限;
堆:由malloc系列函数或new操作符分配的内存。生命周期由free或delete决定。没释放之前一直存在,直到程序结束;特点是使用灵活,空间比较大,但容易出错。
文字常量:常量字符串就是存放在这里的,程序结束后由系统释放。
程序代码:存放函数体的二进制代码。
重要:变量必定存储在上面的某一种中,必须理解。再次强调,尽量别用全局变量,实在不行加static限制,最佳办法是写成函数接口。