linux下有4GB的虚拟内存空间:
3G~4GB主要是内核区-----系统用
0~3GB主要是用户区--------用户用
在用户区从0到3GB分别分为:
代码代码段------------只读的
数据段:一、字符常量区-----------只读,用于存放字符常量
二、普通数据段区--------可读写,用于存放全局变量,静态变量,该区的内存,需要在整个程序运行结束时才会释放
堆区:可读写,动态分配的存储区,用于malloc,calloc,realloc,new来分配内存,free,delete来是放内存空间
栈区:可读写,存放局部变量(普通局部变量),空间由系统自动分配,自动释放(超过变量作用范围,空间就会自动释放)
命令行区:这里主要用于命令行输出的参数存放区