代码:
int str_join(char *a, const char *b) {
int sz =0;
while(*a++) sz++;
char *st = a -1, c;
*st = (char) 32;
while((c = *b++)) *++st = c;
*++st = 0;
return sz;
}
....
char a[] = "StringA";
printf("string-1 length = %d, String a = %s\n", str_join(&a[0],"StringB"), a);
输出:
string-1 长度 = 7, char *a = StringA StringB
*** 检测到堆栈粉碎 **** : /T02 终止
中止(核心转储)
我不明白为什么它显示堆栈粉碎?什么是*堆栈粉碎?还是我的编译器的错误?