错误。没有重载函数“ strcpy_s”的实例与参数列表匹配

时间:2020-04-05 13:41:44

标签: c++ string

当我要将源字符串const char *复制到目标字符串char *时出现错误。当我使用strcpy()时,代码没有出现错误,但要告诉我它已被弃用。我的意思是,参数类型没有任何问题。 当我使用安全格式(strcpy_s)时,它不接受目标字符串(char *)的类型。 我知道我可以使用strdup()代替;但我实际上想知道目标字符串的类型是什么问题。

const char* str1 = "test"; char* str2 = new char[strlen(str1) + 1]; char str3[5]; strcpy(str2, str1); // no errors. But it's deprecated strcpy_s(str2, str1); // error. No instance of overloading function "strcpy_s"..... strcpy_s(str3, str1); // It works without any problem.

1 个答案:

答案 0 :(得分:0)

strcpy_s(str2,str1);这种过载需要以字节为单位的大小

strcpy_s(str2,strlen(str2) * sizeof(char), str1);