C语言有关问题求教
C语言问题求教C/C++ codevoid str_cat(){char string[48]memset(string,0,sizeof(string))char string1[
C语言问题求教
C/C++ codevoid str_cat(){ char string[48]; memset(string,0,sizeof(string)); char string1[12] = "Hi!"; char string2[12] = "Xiaoming,"; char string3[12] = "Good morning!"; strcat(string, string1); strcat(string, string2); strcat(string, string3); printf("%s \n", string); }
打印结果为啥是:Hi!Xiaoming,Good morningXiaoming,
而不是:Hi!Xiaoming,Good morning!
[解决办法]char string3[12] = "Good morning!";
貌似12个字符不够啊。让编译器自动决定有多少个字符比较好。
char string3[] = "Good morning!";
[解决办法]嗯,string3的空间不足
编译器没有告警?
[解决办法]string2在string3地址的高处,正好会接着string2打印
[解决办法]除了string3溢出, 不会出现显示错误Hi!Xiaoming,Good morningXiaoming,