2

当我尝试使用 fixed 初始化一个新的 char* 数组,同时与其他事物一起被初始化时,它不起作用。下面的代码就是一个例子

fixed (char* buffer = new char[25])
{
     //This works just fine
}; 

fixed (char* origionalPhrase = phrase, char* buffer = new char[25])
{
    //This does not
}

语法解析器将新的 char[25] 强调为“无法将类型 'char[]' 隐式转换为 'char*'”。我需要将这两个变量都初始化为 char* 数组。第一个变量,originalPhrase 变量初始化得很好。MSDNN 文档指出:

fixed (byte* ps = srcarray, pd = dstarray) {...}

将工作。

我使用了这篇MSDN 文章。

4

2 回答 2

6

好吧,MSDN 示例只有一个 char *(或实际上是 byte *)。删除第二个。

fixed(char* origionalPhrase = phrase, buffer = new char[25])
//                                   ^-- removed char*
{
   // ...
}
于 2012-05-16T07:14:51.257 回答
4
fixed(char* origionalPhrase = phrase)
{
   fixed(char* buffer = new char[25])
   {
   ....
   ....
       now you can use origionalphrase and buffer inside.
   }
}
于 2014-10-02T11:58:46.203 回答