1.栈区:执行函数时,函数的局部变量可在内存的栈区释放,注意:函数结束时,栈区存放的局部变量的生命也走到尽头,并且开辟的空间也会被释放给操作系统。
2.堆区:堆区一般适用于动态内存开辟空间的,注意:堆区开的的空间,若程序员不手动释放,则会有程序结束时再释放给操作系统。这其中牵扯到了内存泄漏(内存浪费问题)。就好比一个程序要跑一星期,而在第一天某一程序内函数申请了堆区的空间却没有释放,则这个空间会直到一星期后才释放,极大的浪费了内存可使用的空间。
3.数据段:又称静态区:存放全局变量,静态数据变量,程序结束后由操作系统释放
4.代码段:存放函数的二进制代码,这段内存区域通常属于可读,不排除某些可写的代码段,也有只读常数变量,例如:字符串常量。