进程的虚拟地址空间

进程的虚拟地址空间

虚拟地址空间图

  • 32位系统上进程的4G的虚拟地址空间
  • 3G的用户空间和1G的内核空间

在这里插入图片描述

  • 0x00000000 ~ 0x08048000的内存时不可访问内存。
  • .text段:存储代码生成的指令。
  • .rodata只读数据段:常量字符串等。
  • .data段:初始化不为0的全局数据,静态数据等。
  • .bss段:初始化为0和不初始化全局数据。
  • .heap堆区:进程刚开始是不划分的,程序第一次调用new时,才会分配堆区。
  • .satck栈区:函数开辟栈帧。

分析如下代码

int gdata1 = 10; // .data
int gdata2 = 0;  // .bss
int gdata3;      // .bss

static int gdata4 = 11; // .data
static int gdata5 = 0;  // .bss
static int gdata6;      // .bss


int main() // 指令 .text
{ // 指令 .text
	int a = 12; // 指令 .text
	int b = 0;  // 指令 .text
	int c;      // 指令 .text
	const char* = "hello"; // .rodata
    
	static int d = 10; // .data
	static int e = 0;  // .bss
	static int f;      // .bss

	return 0; // 指令 .text
} // 指令 .text

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值