strcpy函数问题

时间:2015-04-26 03:32:55

标签: c++

我有一个用户定义的类,其中一个成员是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);
    }

}

1 个答案:

答案 0 :(得分:4)

因为strcpy_s需要一个额外的参数来指定要复制的字节数。

见这里:http://www.cplusplus.com/forum/beginner/118771/