2011-07-21 58 views
1

如何在C#不安全上下文中初始化sbyte **?在C#不安全上下文中初始化sbyte **

我需要

sbyte** parameters; 

來填充三個字符串: 「第一」, 「第二」, 「第三」。

+0

如何'爲sbyte * []參數= {「第一」,「第二」,「第三」};'。 –

+0

@Kerrek SB:無法將'string'類型的表達式轉換爲'sbyte *'類型'' – mgamer

+1

對不起,您能否澄清您的意圖?你的意思是你想要一個'sbyte **'數組,例如,通過void foo(params sbyte ** arrOfSByte)的函數原型;'? – foxy

回答

3

以下是使用byte**的可能解決方案。這應該與sbyte**兼容所用的編碼是ASCII和僅具有值127

unsafe static void Main(string[] args) 
{ 
    fixed (byte* arg0 = Encoding.ASCII.GetBytes(args[0]), 
       arg1 = Encoding.ASCII.GetBytes(args[1]), 
       arg2 = Encoding.ASCII.GetBytes(args[2])) 
    { 
    byte*[] arr = { arg0, arg1, arg2 }; 

    fixed (byte** argv = arr) 
    { 
     ... 
    } 
    } 
}