Инициализируйте sbyte ** в небезопасном контексте C # - PullRequest
1 голос
/ 21 июля 2011

Как можно инициализировать sbyte ** в небезопасном контексте C #?

Мне нужно, чтобы

sbyte** parameters;

было заполнено тремя строками: «первая», «вторая», «третья».

1 Ответ

3 голосов
/ 21 июля 2011

Вот возможное решение с использованием 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)
    {
      ...
    }
  }
}
...