我想了解更多关于内存的知识,但我无法从谷歌中找到它,如果这是一个愚蠢的问题,请原谅我。
为什么下面的代码,在 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/