我有一个用户定义的类,其中一个成员是char*
类型。当我尝试在构造函数中初始化它时,我收到错误error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
但是,当我将strcpy更改为strcpy_s时,它仍然会出现以下错误IntelliSense: no instance of overloaded function "strcpy_s" matches the argument list argument types are: (char *, char *)
假设Student
是类,char* name;
是数据成员之一。所以,我的构造函数如下:
Student (char* s = NULL) {
if (s != NULL) {
name = new char[strlen(s) + 1];
//strcpy(name,s);
strcpy_s(name,s);
}
}
答案 0 :(得分:4)
因为strcpy_s需要一个额外的参数来指定要复制的字节数。