新指針和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#不可能?
你知道你的答案和這種方法'Marshal.WriteInt32(new IntPtr(p),100)'有什麼區別嗎?兩者都很好。 – nawfal
@nawfal,'Marshal'包含大量用於處理非託管內存的方法,如果您檢查MSDN,您會注意到它們未被標記爲不安全。 –