gpt4 book ai didi

c++ - 是否可以访问物理地址0?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:58 24 4
gpt4 key购买 nike

在C/C++中,不允许访问地址为0的数据。

但是,物理内存是从0开始编号的。在DOS时代,中断 vector 表位于物理地址0。第一个中断 vector 是被零除异常的处理程序。

我的问题是:

什么情况下允许访问物理地址0?

最佳答案

要访问物理地址零,这取决于您所使用的平台。该语言不知道底层寻址模型,它取决于操作系统。

  • 在裸机环境中,如果启用了分页,您可以完全控制页表,或者如果未启用分页,则只取消引用零。
  • 在某些 Unix 和 Linux 变体上,您执行 mmap 并且可能还打开/dev/mem 以获取逻辑地址非零但物理地址为零的非空指针,它可能需要一些访问权限。
  • 我不确定在 Windows 上。

附言。其他答案似乎混淆了语言级别指针和物理地址。

关于c++ - 是否可以访问物理地址0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com