c# - 0 - 65535 之间第一个内存地址的空引用

标签 c# memory nullreferenceexception unsafe

我想了解更多关于内存的知识,但我无法从谷歌中找到它,如果这是一个愚蠢的问题,请原谅我。

为什么下面的代码,在 C# 中访问内存地址 0(和最多 65535)会抛出 NullReferenceException

byte* pointer = (byte*)0;

byte test = *pointer;

提前致谢!

最佳答案

这是 Windows 本身的设计特点。为了在开发周期中尽早发现程序员的错误,从 0 到 64K (- 1) 的虚拟地址在所有进程中都是无效的。

关于c# - 0 - 65535 之间第一个内存地址的空引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857886/

相关文章:

c# - 数组中没有相同的数字

nullreferenceexception - MVCSiteMapProvider 在转移到生产环境时给出空引用

c# - 重载构造函数时如何避免 NullReferenceException?

c# - 将 SQL 数据读取器数据加载到 DataTable 时遇到问题

c# - LINQ:SubmitChanges() 没有更新我的记录

c# - 更改 WCF RIA 服务上的线程优先级

python - ipython 内核在 16gb 的 linux 盒子中最大容量为 3gb?

c - 当程序遍历和报告文件系统细节时如何最好地分配和使用内存

Java 8 : Better to extend class of static methods or better to call static methods directly?

c# - 从 Selenium.Webdriver 2.44 更新到 2.46 导致 NullReferenceException