因为你数组a,初始化的时候没有指定具体的大小,所以是按初始化的值来取的大小,也就是4。你两个一下合并,导致数组a越界了,所以出错了
因为它越界了,你定义的char a[]只有len那么大,然后你自己又在后面加了内容,你可以去看看字符数组与字符指针区别。
数组a不足以容纳拼接后的字符串,至少要写:char a[8]={"abc"};
把前面的变量说明改为char a[10]="abc";就行了。
字符串a没有足够的空间保存数据