首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接访问内存地址,我们可以直接访问任何内存地址吗?

直接访问内存地址,我们可以直接访问任何内存地址吗?
EN

Stack Overflow用户
提问于 2017-03-05 00:23:53
回答 1查看 139关注 0票数 1
代码语言:javascript
复制
int main(void)
{
int *a=6;
printf("%d",*a);
return 0;
}

在这段代码中,我们直接访问一些内存地址let 6,我们将得到分段fault.Why??我怎样才能不出错地访问它呢?我可以直接访问内存地址吗?内存管理是处理器的功能还是操作系统的功能?

EN

回答 1

Stack Overflow用户

发布于 2017-03-05 00:37:10

每次你加载一个程序,它会给自己保留一个属于它的地址范围(Address space),把它想像成从1000到4000的地址,你的堆栈和堆驻留意味着你只能在那个范围内分配内存,只引用这些地址和地址。让我们想象一个“如果”假设我们实际上可以访问地址6,但是在这个位置,你的操作系统实际上有一些非常重要的数据,并且你意外地覆盖了这些数据。操作系统程序员足够聪明,不允许我们访问不应该访问的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42598302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档