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

时间:2011-07-21 10:37:11

标签: c# .net pointers unsafe

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

我需要

sbyte** parameters;

填充三个字符串:“first”,“second”,“third”。

1 个答案:

答案 0 :(得分: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)
    {
      ...
    }
  }
}