黑马程序员技术交流社区
标题:
出现Abort trap :6怎么解决
[打印本页]
作者:
尹世伟
时间:
2015-5-18 21:18
标题:
出现Abort trap :6怎么解决
本帖最后由 尹世伟 于 2015-5-19 21:17 编辑
/*
1.功能:输入一个8位字符串然后再输出到屏幕上;
2:如果输入的不是8位则提醒输入8位字符串。
*/
#include<stdio.h>
int main()
{
char a[8];//定义一个8位字符型数组
int count=0;//定义count记录输入字符串的字符个数
do
{
printf("请输入一个8位字符串:\n");//提示用户输入
scanf("%s",a); //接收用户输入
while(a[count]!='\0') //判断数组元素个数
{
count++;
}
}
while(count!=8);
printf("您输入的是:%s\n",a); //输出字符串
return 0;
}
复制代码
运行之后的结果是
localhost:Day1 pcbeta$ cc 01-注释.c
localhost:Day1 pcbeta$ ./a.out
请输入一个8位字符串:
qw
请输入一个8位字符串:
qwertyui
您输入的是:qwertyui
Abort trap: 6
localhost:Day1 pcbeta[ DISCUZ_CODE_19 ]nbsp;
复制代码
请问我这代码什么问题 怎么老是有这个Abort trap:6
作者:
kansiliyundi
时间:
2015-5-18 21:32
同问,我也出现这个问题了,是不是xcode版本问题啊?经常出现
作者:
万物长生
时间:
2015-5-18 21:37
百度了一下,发现可能是越界的问题,楼主可以向这个方向找资料看看.
作者:
香草芭芙
时间:
2015-5-18 22:21
/*
1.功能:输入一个8位字符串然后再输出到屏幕上;
2:如果输入的不是8位则提醒输入8位字符串。
*/
#include <stdio.h>
int main()
{
char a[9]; //定义一个8位字符型数组 <--- 定义8个字节的空间来存输入的内容, 没有'\0'的位置, 所以下面打印会发生错误
// char a[9]; <--- 改成9 就能通
int count = 0; //定义count记录输入字符串的字符个数
do {
printf("请输入一个8位字符串:\n"); //提示用户输入
scanf("%s", a); //接收用户输入
while (a[count] != '\0') //判断数组元素个数
{
count++;
printf("%d\n",a[count]);
}
} while (count != 8);
printf("您输入的是:%s\n", a); //输出字符串 <--- 没有结束符'\0'的字符串, 系统会一直往下找'\0',角标越界错误
//=== 分割线 ====================================
char c[] = "helloworld"; // <---10个字符串
printf("%zi\n",sizeof(c));// <---系统分配 11个字节空间来存储.
return 0;
}
复制代码
作者:
尹世伟
时间:
2015-5-19 21:14
香草芭芙 发表于 2015-5-18 22:21
厉害,厉害:handshake
作者:
祝皓阳
时间:
2015-5-23 19:57
恩恩,学习了,好厉害呀
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2