0

私は構造を持っています

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

}

そしてもう一つ

NewStruct2 
{
  uint newFactor;
  char newName[21];
}

ここでは、次のように dll で関数「func」を呼び出しています。

NewStruct1 var;

func(&var);

機能は

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)これについて私を助けてくれる人はいますか?

4

1 に答える 1

3

の2番目の引数は、ソースの長さではなく、宛先strcpy_sの要素数、つまり21(の文字数)である必要があります。newName

于 2012-08-01T06:51:50.037 に答える