C语言 显示strcpy出错 求大神解释 编译器是vs2013
#include"stdio.h"#include"string.h"main(){charstr1[]="whatare";charstr2[]="youdoing?"...
#include "stdio.h"
#include "string.h"
main()
{
char str1[] = "what are";
char str2[] = "you doing?";
strcpy(str1, str2);
printf("%s \n",str1);
}
错误
错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 展开
#include "string.h"
main()
{
char str1[] = "what are";
char str2[] = "you doing?";
strcpy(str1, str2);
printf("%s \n",str1);
}
错误
错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 展开
3个回答
2014-02-20
展开全部
str1不够长,你设置跟str2一样长
追问
str1[40]后仍然报错 还是一样错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你定义的是两个字符串,第一个字符串比第二个要短,所以你这样copy会越界的。
VC6.0 不会检查,但是VS会进行检查的。
建议使用strncpy()函数,这样安全,但是不会全部copy进去。
或者你可以定义的时候str1[] str2[]都指定一下分配的空间,比如15.,str1[15] str2[15]这样
VC6.0 不会检查,但是VS会进行检查的。
建议使用strncpy()函数,这样安全,但是不会全部copy进去。
或者你可以定义的时候str1[] str2[]都指定一下分配的空间,比如15.,str1[15] str2[15]这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询