在我的示例中,strcpy_和malloc_在手动复制似乎有效时抛出错误这是密码这是有效的:

hookaddrinfoluacode=(char *)malloc(16384);
// This works
for(i=0;i<strlen(this_token);++i){
   hookaddrinfoluacode[i]=this_token[i];
}
hookaddrinfoluacode[i+1]='\0';

这不是
memcpy_s(hookaddrinfoluacode,sizeof(char),this_token,strlen(this_token));

这也不是:
strcpy_s(hookaddrinfoluacode,strlen(this_token),this_token);

此错误似乎是从标准库中的此代码行引发的:
 _VALIDATE_RETURN_ERRCODE(dst != NULL, EINVAL);

此_令牌是从this_token=strtok_s(NULL,":",&next_token);调用获得的。
我很困惑:)

最佳答案

memcpy_s如果源不适合目标,则引发异常sizeof(char)是1两者也都验证指针不为空,因此必须有一个。

10-04 12:09