2012-08-01 2 views
0

내가 구조는 C에 ++ C에서 중첩 구조의 가변 전달 ++ DLL의 원인

NewStruct1 
{ 
    uint factor; 
    NewStruct2 assert[3]; 
    char name[21]; 

} 

다른

I 호출하고 여기
NewStruct2 
{ 
    uint newFactor; 
    char newName[21]; 
} 

이 (L은 0 && "버퍼가 너무 작") DLL에 함수 'FUNC'는 다음과 같이

NewStruct1 var; 

func(&var); 

함수이다

,745,
func(NewStruct1 *v) 
{ 
    std::string myName = "werttt"; 
    strcpy_s(v->assert[0].newName, myName.size(), myName.c_str()); 
} 

strcpy_s은 수용 할 공간이 충분하더라도 (L"Buffer is too small" && 0)이됩니다. 어떤 시체도 이걸 도와 주실 수 있습니까?

답변

3

strcpy_s의 두 번째 인수는 소스, 즉, 21 (newName에서의 문자의 수)가 아닌 길이 대상의 요소의 개수이어야한다.

+0

답변 해 주셔서 감사합니다. 당신 말이 맞아요. – goldenptr