C++ strcpy函数有问题

C++ strcpy函数有问题,c++,C++,我有一个用户定义的类,其成员之一是char*类型。当我试图在构造函数中初始化它时,我得到一个错误,说error C4996:“strcpy”:这个函数或变量可能不安全。考虑使用StrucPys代替.< /代码> 但是,当我将strcpy更改为strcpy_s时,仍然会出现以下错误IntelliSense:重载函数“strcpy_s”的实例与参数列表中的参数类型不匹配:(char*,char*) 假设Student是类,char*名称是数据成员之一。因此,我的构造函数如下所示: Student

我有一个用户定义的类,其成员之一是
char*
类型。当我试图在构造函数中初始化它时,我得到一个错误,说
error C4996:“strcpy”:这个函数或变量可能不安全。考虑使用StrucPys代替.< /代码> 

但是,当我将strcpy更改为strcpy_s时,仍然会出现以下错误
IntelliSense:重载函数“strcpy_s”的实例与参数列表中的参数类型不匹配:(char*,char*)

假设
Student
是类,
char*名称
是数据成员之一。因此,我的构造函数如下所示:

Student (char* s = NULL) {
    if (s != NULL) {
         name = new char[strlen(s) + 1];
         //strcpy(name,s);
         strcpy_s(name,s);
    }

}

这是因为strcpy_需要一个额外的参数来指定要复制的字节数


请参见此处:

那么,如果变量中的字节数是多少,在这种情况下我该怎么做?我可以输入任意的最大大小,比如说100作为第二个参数吗?我不明白这一点。有人能澄清一下吗?@Grendan
strcpy__s(名字,s,strlen+1)?@πάνταῥεῖ: 我猜你的论点顺序错了?