0
在C#書中寫道我無法訪問未分配的內存。他們說這在不安全的情況下是可能的。我的問題是如何做到這一點? 我試過這樣的:c#如何訪問未分配的內存
static void Main(string[] args)
{
unsafe
{
int c;
Console.WriteLine(c);
}
}
允許項目屬性中的不安全選項。此代碼無法編譯。
在C#書中寫道我無法訪問未分配的內存。他們說這在不安全的情況下是可能的。我的問題是如何做到這一點? 我試過這樣的:c#如何訪問未分配的內存
static void Main(string[] args)
{
unsafe
{
int c;
Console.WriteLine(c);
}
}
允許項目屬性中的不安全選項。此代碼無法編譯。
unsafe
關鍵字不會完全改變語言或編譯模型,您仍然需要在使用它們之前初始化任何變量。如果你想訪問「未分配的內存」,你需要獲得一個指向那個內存的指針。這裏是一個例子:
unsafe void AccessMemory()
{
const int address = 10000;
byte[] array = new byte[0];
fixed (byte* zero = array)
{
byte* p = zero + address;
}
}
這裏我們得到一個指向空數組的指針,它給出了零指針。然後我們通過一定量(地址)來抵消該指針,這導致指向該存儲器地址的指針。
想玩俄羅斯輪盤賭嗎?使用C#,然後訪問未分配的內存(或類似的東西)就像用Lambo越野... –
不,我只是好奇。如果有我想知道的選項。 –