小白在学习C的时候遇到了这个问题,记录下希望能帮助到和我一样曾经为这个问题迷茫的别人
原始代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "tas";
char str2[] = "tsd";
strcat(str1,str2);
str1[2] = '\0';
printf("str1_now_size:%ld\n",sizeof(str1));
printf("str1_info:%s\n",str1);
return 0;
}
报错信息:
原因:
在定义字符串数组时因未没有人为定义数组长度,所以系统自定了两个数组长度为“4”
char str1[] = "tas";
char str2[] = "tsd";
但是后面的strcat函数将str2数组合并给了str1,长度超过了4,导致溢出报错
正确代码:
#include <stdio.h&