积极答复者
strcat与strcpy的用法

问题
-
#include<stdio.h>
#include<string.h>
void main()
{
char s1[30]={"people's republic of "};
char s2[]={"china"};
printf("%s\n",strcat(s1,s2));
printf("%s\n%s\n",s1,s2);
char s3[400]={"people's republic of ddww eegg "};
char s4[8]={"china"};
printf("%s\n",strcpy(s3,s4));
printf("%s\n%s\n",s3,s4);
}这个程序有两个警告,这的原因?
warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : 参见“strcat”的声明warning 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.
1> d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : 参见“strcpy”的声明
答案
-
strcat不进行数组越界检测,所以windows认为它不安全。
让你用strcat_s这个代替
你要确认程序没问题,可以直接#pragma warning(disable:4996)
0xBAADF00D- 已标记为答案 Min-Hong Tang - MSFT 2010年8月9日 3:17
全部回复
-
-
strcat不进行数组越界检测,所以windows认为它不安全。
让你用strcat_s这个代替
你要确认程序没问题,可以直接#pragma warning(disable:4996)
0xBAADF00D- 已标记为答案 Min-Hong Tang - MSFT 2010年8月9日 3:17