在wcscpy_发生车祸
我在在wcscpy_发生车祸,c,struct,C,Struct,我在wcscpy中崩溃,而wcscpy工作正常。我有以下结构 struct Test { ... wchar_t identity[256 * 2]; ... }; 我正在将一个结构逐成员复制到另一个结构中。下面的那个正在崩溃 wcscpy_s(t2.identity, sizeof(t2.identity) , t1.identity); 虽然这一个工作正常: wcscpy(t2.identity, t1.identity); 如果您将看到中间的参数是元素的数量,而以
wcscpy
中崩溃,而wcscpy
工作正常。我有以下结构
struct Test {
...
wchar_t identity[256 * 2];
...
};
我正在将一个结构逐成员复制到另一个结构中。下面的那个正在崩溃
wcscpy_s(t2.identity, sizeof(t2.identity) , t1.identity);
虽然这一个工作正常:
wcscpy(t2.identity, t1.identity);
如果您将看到中间的参数是元素的数量,而以字节为单位传递数组的大小
如果使用Visual C++,则可以使用元素来获得元素的数量。
< P>如果你看到中间参数是“强>元素< /强>的数量,而你通过数组的大小<强>字节< <强> > /p>如果你使用Visual C++,那么你可以使用元素来获取元素的数量。
HMM,这个答案有正确的信息,但是它不能解释OP的问题,除非t1。identity
缺少终止符,或者来自其他具有较大identity[]
字段的struct
。UV用于详细说明正确的编码。请注意,您已声明identity
可容纳512个宽字符sizeof(t2.identity)
将返回1024个字节(每个wchar\u t
在Windows中为2个字节)。wcscpy中的第二个参数应该是sizeof(t2.identity)/sizeof(wchar\t)
,或者按照答案中的建议使用\u countof
,这将得到512。请注意,您已经声明identity
可以容纳512个宽字符sizeof(t2.identity)
将返回1024个字节(每个wchar\u t
在Windows中为2个字节)。wcscpy中的第二个参数应该是sizeof(t2.identity)/sizeof(wchar\t)
,或者按照答案中的建议使用\u countof
,这将得到512。