2015-08-19 69 views
2

我收到一個不安全的byte*類型指針,該指針指向我的類中的某個方法中的二維數據集。我想在同一個類中定義另一個方法,它會對這個指針做一些指針運算。當我試圖按如下方式定義方法時,我得到了幾個編譯時錯誤。看起來像unsafe關鍵字在類作用域不允許使用。我如何解決這個問題?不安全的C# - 將不安全的指針傳遞給方法

unsafe 
{ 
    private byte* ReadIntoMemory(int rowIndex, int colIndex, int rowSize, int colSize, byte *abc) 
    { 
    } 
} 

如果我不使用unsafe,那麼編譯器標誌的方法是無效的語法byte*參數。

我試圖代碼的ReadIntoMemory方法將參考返回到正確的內存位置寫成的代碼如下 -

byte *interestingMemoryLocation = ReadIntoMemory(locX, locY, sizeX, sizeY, basePointer); 
+2

看起來你可以聲明一個不安全的方法。請參閱[c#docs](https://msdn.microsoft.com/en-us/library/chfa2zb8.aspx)。 –

+2

當你在尋找'私人不安全的字節* ReadIntoMemory(...' – stuartd

+0

@stuartd謝謝。那是做的。你想讓它成爲一個答案? –

回答

1

您需要unsafe關鍵字移動到方法簽名:

private unsafe byte* ReadIntoMemory(… 
相關問題