1.内存里的几个区域
除了耳熟能详的栈区,堆区,静态区,还有内核空间,内存映射段,数据段,代码段
2.示意图
3.解释
栈区(stack area):局部变量,函数参数,返回数据,返回地址
内存映射段:将文件映射到内存
映射:
如果看过王爽老师的 《汇编语言 第四版》,其中写到了可以操作B800:0000~B800:FFFF的虚拟地址来向80*25的显示屏写入可视的文字
可以这样做的原因是:由于CPU直接控制显卡比直接控制(读/写)内存要慢,因此为了方便操作显卡的数据,其被映射到内存中
堆区(heap area):动态内存管理(malloc函数,realloc函数,calloc函数,free函数)
数据段(data segment)(静态区):全局变量(如全局变量),静态数据(如静态变量(由static修饰))
代码段(code segment):存放函数体(类成员函数和全局函数)的二进制代码和只读常量(如常量字符串)