2012-05-16 1 views
0

고정 된 값을 사용하여 새로운 char * 배열을 초기화하면서 다른 모든 것들과 병행하여 초기화하려고하면 작동하지 않습니다. 다음 코드는 구문 분석기는 것으로 새로운 문자 [25] 밑줄이"new"로 초기화 된 Fixed() {}의 여러 포인터가 작동하지 않습니다.

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

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

의 예입니다 "암시 적으로 형식을 변환 할 수 없습니다 '문자 []'의 char * '를". 두 변수를 char * 배열로 초기화해야합니다. 첫 번째 변수 인 origionalPhrase 변수는 잘 초기화됩니다. MSNDN 문서는 다음과 같이 지적합니다.

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

이 작동합니다.

나는 this MSDN 문서를 사용했습니다.

+0

음, MSDN 예제는 하나의 char * 만 가지고 있습니다. 두 번째 것을 제거해보십시오. – zmbq

+0

그래. 나는 초기화에서 쉼표를 사용하지 않으므로 그렇게하는 것을 완전히 잊었다. 누군가가 대답을 찾고 오는 경우에 대비하여 질문을 던져라. 너는 옳았다. –

답변

1

음, MSDN 예제에는 단 하나의 char * (또는 실제로 byte *) 만 있습니다. 두 번째 것을 제거하십시오.

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