相关疑难解决方法(0)

为什么.NET中最低地址空间(非空)的内存访问报告为NullReferenceException?

这导致AccessViolationException抛出:

using System;

namespace TestApplication
{
    internal static class Program
    {
        private static unsafe void Main()
        {
            ulong* addr = (ulong*)Int64.MaxValue;
            ulong val = *addr;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会导致NullReferenceException抛出:

using System;

namespace TestApplication
{
    internal static class Program
    {
        private static unsafe void Main()
        {
            ulong* addr = (ulong*)0x000000000000FF;
            ulong val = *addr;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它们都是无效指针,都违反了内存访问规则.为什么NullReferenceException?

.net c# clr

30
推荐指数
2
解决办法
1373
查看次数

标签 统计

.net ×1

c# ×1

clr ×1