首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言有关问题求教

2012-04-12 
C语言问题求教C/C++ codevoid str_cat(){char string[48]memset(string,0,sizeof(string))char string1[

C语言问题求教

C/C++ code
void 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,

热点排行