c++进程内存分段以及分段的目的

本文探讨了C++进程的内存分段,包括栈区、堆区、全局区、常量区和代码区。内存分段的主要目的是赋予不同属性、提高CPU缓存命中率和节省内存。编译器负责初步划分,操作系统通过GDT设置段描述符以确定段的属性,CPU则根据段描述符进行安全性检查。
摘要由CSDN通过智能技术生成

 

栈区

int x = 0; int *p = NULL;

堆区

int *p = new int[20];

全局区

存储全局变量及静态变量

常量区

存储常量和字符串;

string str = "hello";

代码区

存储逻辑代码的二进制

内存分区

将数据和代码分开的好处有三点:

第一,可以为他们赋予不同的属性。

比如数据本身是需要修改的,所以数据就需要有可写的属性,不让数据段可写,那程序根本就无法执行啦。程序中的代码是不能被更改的,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值