【发布时间】:2020-04-05 13:41:44
【问题描述】:
当我想将作为 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.
【问题讨论】: