Ubuntu出现“段错误 (核心已转储)”

weston_cao 2013-08-02 04:33:44

52 /*
53 练习5-3:字符串的拼接
54 */
55 void my_strcat() {
56 char *s = "abced";
57 char *t = "12345";
58 char r[strlen(s) + strlen(t)];
59 while(*s++) {
60 }
61 while((*s++ = *t++)) {
62 }
63 printf("\n%s\n",r);
64 }


执行结果:
段错误 (核心已转储)

请指教高手出错原因,谢谢!
...全文
21134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongf2014 2016-04-06
  • 打赏
  • 举报
回复
大神们,受教了
逐梦如风 2013-08-23
  • 打赏
  • 举报
回复
引用 6 楼 cabing2005 的回复:
字符指针没法修改的啊。 void my_strcat() { char s[] = "abced"; char *t = "12345"; char r[strlen(s) + strlen(t)]; while(*s++) { } while((*s++ = *t++)) { } printf("\n%s\n",r); }
这样就ok了。
逐梦如风 2013-08-23
  • 打赏
  • 举报
回复
字符指针没法修改的啊。 void my_strcat() { char s[] = "abced"; char *t = "12345"; char r[strlen(s) + strlen(t)]; while(*s++) { } while((*s++ = *t++)) { } printf("\n%s\n",r); }
FeelTouch Labs 2013-08-02
  • 打赏
  • 举报
回复
结贴太快了,你这个程序有很多地方需要改,刚改好:
int _tmain(int argc, _TCHAR* argv[])
{
/*
练习5-3:字符串的拼接
*/
char s[20]= "abced";
char *p=s;
char t[20]= "12345";
char *q=t;
char r[40];
while(*p++)
{
}
p--;
while((*p++ =*q++))
{
}
printf("%s\n",s);
return 0 ;
}



自信男孩 2013-08-02
  • 打赏
  • 举报
回复 1
只读权限,不可以做写操作。
赵4老师 2013-08-02
  • 打赏
  • 举报
回复
进程意外退出会在当前目录下产生‘code’文件或形如‘core.数字’的文件比如‘core.1234’ 使用命令 gdb 运行程序名 core或core.数字 进入gdb然后使用bt命令 可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。 如果进程意外退出不产生core文件,参考“ulimit -c core文件最大块大小”命令
图灵狗 2013-08-02
  • 打赏
  • 举报
回复
char *s = "abced"这样定义后,相当于s变为常量指针,s所指向的内容不能被修改,可以改为: char s[16] = "abced";
引用 楼主 weston_cao 的回复:

 52 /*
 53 练习5-3:字符串的拼接
 54 */
 55 void my_strcat() {
 56     char *s = "abced";
 57     char *t = "12345";
 58     char r[strlen(s) + strlen(t)];
 59     while(*s++) {
 60     }
 61     while((*s++ = *t++)) {
 62     }
 63     printf("\n%s\n",r);
 64 }
执行结果: 段错误 (核心已转储) 请指教高手出错原因,谢谢!
max_min_ 2013-08-02
  • 打赏
  • 举报
回复

char *s = "abced"; // 它的值是不能修改的,你修改的内存出错的
char s[] = "abcde"; //换成这个把,在栈中分配,可以修改

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧