如何写入内存地址

本文关键字:地址 内存 何写入 | 更新日期: 2023-09-27 18:13:26

c#中新的指针和不安全的世界。我正在通过指针获取变量的内存地址,在这里和那里移动一些东西等等;基本上学习。

static unsafe void M()
{
    var i = 1;
    var p = &i; //gets memory location of variable i here
    //how do I write to location p, say a value of 100?
}

我想知道是否有一种方法来写一个特定的位置,以及?如果我能同时读和写,这对了解周围发生的事情有很大的帮助。

没有实际目的,只是学习。或者c#不可能做到这一点?

如何写入内存地址

您需要使用*操作符对指针解引用。例:

*p = 100;

像这样

*p = 100;
Console.WriteLine(i); // prints 100;

你需要遵从它

下面是一个LINQPad代码片段:

int i = 1;
unsafe
{
    var p = &i;
    *p = 100;
}
i.Dump();

如预期的那样输出"100"