在C语言中,一般把内存分为5个区域,分别为:全局区、代码区、常量区,以及堆和栈。
全局区:存放在这个区域的数据,在整个程序的运行期间都是有效的,也就是生存周期贯穿整个程序运行期。所以全局区用以存放全局变量、静态变量。全局区的分配、释放均由编译器自动完成。
代码区:显而易见,就是存放程序的区域。
常量区:编程的时候会用到大量常量,这些常量在程序运行期间不会改变,存放在常量区。常量区的分配、释放有编译器自动完成。
堆:程序运行期间,可能临时产生大量的有用数据,但这些数据是临时的,并不需要程序的继续保留,这个时候就需要临时分配一些内存空间来保存。堆是动态分配释放的。
栈:保存函数局部变量、调用函数时的形参。