关于strcpy和strcpy_s

char * hobby;
char * ho="safafaf";
hobby=new char[strlen(ho)+1];
strcpy(hobby,ho);
这里为什么只能用strcpy不能用strcpy_s?

图片说明


为了减少溢出的可能,_s出来了。
可是为了移植,它不通用,问题又出来了。
 
 ......
答案就在这里:关于strcpy_s
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

strcpy 和 strcpy_s 函数,如果你的系统中有实现,应该是一个能用的地方、另一个也一定能用
你所说的 strcpy_s 函数不能用是什么现象?可能是你使用的方法不正确吧。因为两个函数的参数是不相同的。

图片说明

试试强制类型转换一下:strcpy_s((char *)hobby,c.hobby);

s t r c p y_s需要三个参数,第二个参数指定长度防止越界,而strcpy只需要两个参数。

参数不同,你没有正确调用strcpy_s