2012-05-16 3 views
0

Lorsque j'essaie d'initialiser un nouveau tableau char * en utilisant fixed tout en étant initialisé en parallèle, cela ne fonctionne pas. Le code suivant est un exemple de cettePlusieurs pointeurs dans Fixed() {} initialisés avec "new" ne fonctionnent pas

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

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

L'analyseur syntaxique souligne le nouveau char [25] comme étant « peut pas convertir implicitement le type « char [] » à« char * ». J'ai besoin que ces deux variables soient initialisées en tant que tableaux char *. La première variable, taille de la base de départ, est très bien initialisée. La documentation MSNDN indique que:

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

fonctionnera. J'ai utilisé l'article MSDN this MSDN.

+0

Eh bien, l'exemple MSDN a seulement un caractère *, essayez de supprimer le second? – zmbq

+0

Yup l'a eu. En général, je n'utilise pas la virgule dans l'initialisation, donc j'ai complètement oublié comment vous le faites. Allez-y, lancez-le comme une réponse au cas où quelqu'un viendrait chercher la réponse. Tu avais raison. –

Répondre

1

Eh bien, l'exemple MSDN a un seul caractère * (ou en réalité octet *). Enlevez le second.

1
fixed(char* origionalPhrase = phrase) 
{ 
    fixed(char* buffer = new char[25]) 
    { 
    .... 
    .... 
     now you can use origionalphrase and buffer inside. 
    } 
} 
Questions connexes