A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 流风124 中级黑马   /  2015-4-19 18:47  /  550 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 编写一个函数void strlink(char s[], char t[])
  3. 将字符串t连接到字符串s的尾部
  4. */
  5. void strlink(char s[], char t[]);
  6. #include <stdio.h>
  7. #include <string.h>
  8. int main()
  9. {
  10.     char s[]="hahakk";
  11.     char t[]="zhuazhunilertgrt";
  12.     strlink(s,t);
  13.     printf("%s\n",s);
  14.    
  15.     return 0;
  16. }

  17. void strlink(char s[], char t[])
  18. {
  19.     int length = strlen(s);
  20.     s = s+length;
  21.     printf("%d\n",length);
  22.     while(*s++ = *t++);
  23.    
  24. }
复制代码
现在代码没有问题,但是如果把原字符串改一下,
  1. char s[]="hahakk";
复制代码
改成:
  1.     char s[]="hahakka";
复制代码
多一位
运行结果如下:
7
hahakkazhuazhunilertgrt
Abort trap: 6

出现Abort trap: 6,应该是s[]的数据越界造成的,但是结果没有错
这是什么原因,求指导


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马