码:
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);
Run Code Online (Sandbox Code Playgroud)
输出:
string-1 length = 7,char*a = StringA StringB
***堆栈粉碎检测****:/ T02终止
中止(核心倾倒)
我不明白为什么它会显示堆栈粉碎?什么是*堆栈粉碎?或者是我编译器的错误?