【问题标题】:Error. no instance of overloaded function "strcpy_s" matches the argument list错误。没有重载函数“strcpy_s”的实例与参数列表匹配
【发布时间】: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.

【问题讨论】:

    标签: c++ string


    【解决方案1】:

    strcpy_s(str2, str1);此重载需要以字节为单位的大小

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2019-07-16
      • 2013-11-17
      相关资源
      最近更新 更多