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* 配列として初期化する必要があります。最初の変数 origionalPhrase 変数は問題なく初期化されます。MSNDN のドキュメントでは、次のことが指摘されています。

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

動作します。

このMSDN の記事を使用しました。

4

2 に答える 2

6

そうですね、MSDNの例にはchar *(または実際にはbyte *)が1つしかありません。2番目のものを削除します。

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 に答える