C语言 显示strcpy出错 求大神解释 编译器是vs2013

2025-05-11 03:22:58
推荐回答(3个)
回答1:

是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替,如果你想继续使用strcpy的,main前面加上#pragma warning(disable:4996)即可

回答2:

str1不够长,你设置跟str2一样长

回答3:

因为你定义的是两个字符串,第一个字符串比第二个要短,所以你这样copy会越界的。
VC6.0 不会检查,但是VS会进行检查的。

建议使用strncpy()函数,这样安全,但是不会全部copy进去。

或者你可以定义的时候str1[] str2[]都指定一下分配的空间,比如15.,str1[15] str2[15]这样