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

int main(void)
{
int *a=6;
printf("%d",*a);
return 0;
}

在这段代码中我们直接访问一些内存地址让6,我们会得到分段错误。为什么? 我怎样才能访问它没有任何错误? 我可以直接访问内存地址吗? 内存管理是处理器还是OS的特性?


每次你加载一个程序时,它都会保留属于它的一系列地址(地址空间),以便简化它,就像从地址中想到的一样。让我们假设1000到4000你的堆栈和堆的驻留意味着你只能分配内存愤怒,单独参考这些地址和这些地址。 让我们假设一个“假设”假设我们可以访问地址6,但是在那个位置你的操作系统实际上有一些超级重要的数据,并且偶然你写了这些数据。 OS程序员非常聪明,不允许我们访问我们不应该访问的东西。

链接地址: http://www.djcxy.com/p/31667.html

上一篇: Accessing direct memory address and can we access directly any memory address?

下一篇: What does Visual Studio do with a deleted pointer and why?