[SWU]c语言Segmentation fault

oubl23 2014-03-10 01:24:02
1 #include <stdio.h>
2
3 int main()
4
5 {
6 char i='0';
7 int a=1;
8
9 printf("%s %d",i,a);
10 return 0;
11
12
13 }
运行后出现
Segmentation fault
怎么回事
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
断鸢 2014-03-10
  • 打赏
  • 举报
回复
   问题已解决..
断鸢 2014-03-10
  • 打赏
  • 举报
回复
char i = '0' 定义的是一个字符,格式符要用%c; %s是对应字符串的
赵4老师 2014-03-10
  • 打赏
  • 举报
回复
进程意外退出会在当前目录下产生‘core’文件或形如‘core.数字’的文件比如‘core.1234’ 使用命令 gdb 运行程序名 core或core.数字 进入gdb然后使用bt命令 可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。 如果进程意外退出不产生core文件,参考“ulimit -c core文件最大块大小”命令
行走在时间里 2014-03-10
  • 打赏
  • 举报
回复
printf("%s %d",i,a); 其中是%c啊!!!!
羽飞 2014-03-10
  • 打赏
  • 举报
回复
引用 楼主 u013063359 的回复:
1 #include <stdio.h> 2 3 int main() 4 5 { 6 char i='0'; 7 int a=1; 8 9 printf("%s %d",i,a); // printf("%c %d", i, a); 10 return 0; 11 12 13 } 运行后出现 Segmentation fault 怎么回事
%s是打印字符串的,比如char *s = "0"; %c才是字符,char i = '0';
__cc__ 2014-03-10
  • 打赏
  • 举报
回复
引用 楼主 u013063359 的回复:
1 #include <stdio.h> 2 3 int main() 4 5 { 6 char i='0'; 7 int a=1; 8 9 printf("%s %d",i,a); 10 return 0; 11 12 13 } 运行后出现 Segmentation fault 怎么回事
printf("%s %d",i,a);这里错了,i是字符,应该printf("%c %d", i, a);如果按照%s打印,i被当做地址,而这个地址是不可读的。。。

69,382

社区成员

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

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