永发信息网

运行时错误([SIGSEGV, Segment fault] 下标越界、无效的指针访问或者其它更糟糕的错误。帮忙修改一下~~

答案:2  悬赏:40  手机版
解决时间 2021-02-27 23:41
#include
#define MAXnumber 100
void inverse(int n,char str[]);
void inverse(int n,char str[])
{
char ch;
while((ch=getchar())!='\n')
{
str[n]=ch;
n++;
}
n--;

while(n>=0)
{
printf("%c",str[n]);
n--;
}
}

void main()
{
int n=0;
char abc[MAXnumber];
inverse(n,abc);
getch();
}
最佳答案
你这个程序运行的时候只要字符的个数超过100了就会出现段错误,出现段错误的原因为你只定义了一个长度为100的数组,但你运行的时候键入了超出了100个字符,解决办法:
1、将“#define MAXnumber 100”中的100改成一个足够大的数;
2、动态分配内存;
以下为动态分配内存的源码:
#include
#include
//#define MAXnumber 100
void inverse(int size,char str[]);
void inverse(int size,char str[])
{
char ch;
int n = 0;
while((ch=getchar())!='\n')
{
str[n]=ch;
n++;
if(n >= size)
{
break;
}
}
n--;

while(n>=0)
{
printf("%c",str[n]);
n--;
}
printf("\n");
}

void main()
{
// int n=0;
// char abc[MAXnumber];
printf("input the number of character to be inversed: ");
int size = 0;
scanf("%d\n", &size);
char *abc = (char*)malloc(size*sizeof(char));
inverse(size,abc);
free(abc);
}

3、使用STL中的容器,比如std::vector,std::stack,它们都有自动扩大容量的功能。
stack具有LIFO(后进先出)的性质,你可以用栈来实现你程序中的功能,以下是使用栈的程序源码:
#include
#include
int inverse(std::stack &str_stack);
int inverse(std::stack &str_stack)
{
char ch;
while((ch=getchar())!='\n')
{
str_stack.push(ch);
}

while(!str_stack.empty())
{
printf("%c",str_stack.top());
str_stack.pop();
}
return 0;
}

int main()
{
stack str_stack;
inverse(str_stack);
printf("\n");
return 0;
}
全部回答
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
Thinkpad的哪个系列适合学广告设计的用??
水泵机电大全在哪里啊,我有事要去这个地方
北京同仁医院可以做眼球震颤的手术吗
vivoX6plus手机联系人怎样复制到sim中
关于 Nike Dunk SB 的问题
306轴承内径和外经多少
爱多多母婴生活馆东华店地址有知道的么?有点
花都有什么旅游点
按揭中,房产证还没有下来的电梯房购买协议
成都市青白江行政学校我想知道这个在什么地方
"咱们开始吃吧”用英语怎么说
黔南州都亮商务咨询有限责任公司在哪里啊,我
爱上鲨鱼的人鱼中文版叫什么名字?
财神节老板请员工吃饭是图个吉利吗?
托业听力很差,怎么样能提高
推荐资讯
心跳过快吃什么食物好
艾沃净水器德州地区营销服务中心NO.002怎么去
1/210-1/336=
地质中抗浮桩或锚杆是什么意思
蓦然回首,初心难改平淡是真,表示什么意思?
泡泡服饰地址在什么地方,想过去办事
英魂之刃副本怎么看别人战力指数
3.08立方分米=多少升=多少毫升
iphone4s锁屏密码忘了怎么解?没有越狱
我dnf剑魂50级了,现在觉醒任务都还没有做完
用格式工厂转换视频,的参数怎么设置?就是编
核工业第五设计院是干什么的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?