|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str1[] = "I love";
- char str2[] = "FishC.com!";
- strcat_s(str1,sizeof(str1)+1, " ");
- strcat_s(str1,sizeof(str1)+sizeof(str2), str2);
-
- printf("%s\n", str1);
- return 0;
- }
复制代码
strcat_s(str1,sizeof(str1)+1, " ");//问题在这一行:为什么写入str1时缓冲区会溢出呢?
跟着b站上视频学到这里,用的是vs2022,和gcc编译器用命令行操作相比,vs感觉更好上手一些。但是经常发生和视频里不一样的错误。。。
不同编译器严格性不一样。这很正常。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str1[100] = "I love"; // 目标空间必须足够大
- char str2[] = "FishC.com!";
- strcat_s(str1, sizeof(str1), " "); // 中途不能改变它的大小
- strcat_s(str1, sizeof(str1), str2);// 中途不能改变它的大小
- printf("%s\n", str1);
- return 0;
- }
复制代码
|
|