2 tach1bana Tach1banA 于 2015.07.20 14:01 提问

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

图片说明

6个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.20 22:01

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

CSDNXIAOC
CSDNXIAOC   2015.07.20 14:09


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

91program
91program   Ds   Rxr 2015.07.20 14:13

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

Tach1banA
Tach1banA 截图我发在楼下了 他说没有这个实例
2 年多之前 回复
Tach1banA
Tach1banA   2015.07.20 14:23

图片说明

Tach1banA
Tach1banA 上面那个name是个数组,下面那个hobby是个指针
2 年多之前 回复
91program
91program 上面一次调用 strcpy_s 都可以,只能说你下面的调用方法有问题。
2 年多之前 回复
91program
91program   Ds   Rxr 2015.07.20 14:28

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

Tach1banA
Tach1banA 不行。。
2 年多之前 回复
notfindjob
notfindjob   2015.07.25 18:12

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

Csdn user default icon
上传中...
上传图片
插入图片