小编Gon*_*lez的帖子

什么是堆栈粉碎(C)?

码:

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终止

中止(核心倾倒)

我不明白为什么它会显示堆栈粉碎?什么是*堆栈粉碎?或者是我编译器的错误?

c stack-overflow gcc stack-smash

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

gcc ×1

stack-overflow ×1

stack-smash ×1