在我的示例中,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两者也都验证指针不为空,因此必须有一个。