段错误。。寒
程序介绍,输入字符串,比如a123x456 789;
输出其中的数字串,即123 456 789
程序#include<stdio.h>
#include<string.h>
void sort(char str[50]);
int main()
{
char str[50];
printf("input a str\n");
fgets(str,50,stdin);
sort(str);
}
void sort(char str[50])
{
int i,j=0,p=0,num=0;
int a[50];
for(i=0;i<strlen(str);i++)
{
if(str[i]>='0'&&str[i]<='9')
{
p++;
if(str[i+1]<'0'||str[i+1]>'9')
{
for(i=0;i<p;i++)
{
num=num+(str[i-p+1]-48)*10^(p-1);
a[j]=num;
j++;
p=0;
}
}
}
}
for(i=0;i<(j-1);i++)
printf("%5d",a[i]);
}
25(a[j]=num;)行出现段错误,能否有人帮忙查下
输出其中的数字串,即123 456 789
程序#include<stdio.h>
#include<string.h>
void sort(char str[50]);
int main()
{
char str[50];
printf("input a str\n");
fgets(str,50,stdin);
sort(str);
}
void sort(char str[50])
{
int i,j=0,p=0,num=0;
int a[50];
for(i=0;i<strlen(str);i++)
{
if(str[i]>='0'&&str[i]<='9')
{
p++;
if(str[i+1]<'0'||str[i+1]>'9')
{
for(i=0;i<p;i++)
{
num=num+(str[i-p+1]-48)*10^(p-1);
a[j]=num;
j++;
p=0;
}
}
}
}
for(i=0;i<(j-1);i++)
printf("%5d",a[i]);
}
25(a[j]=num;)行出现段错误,能否有人帮忙查下
...全文
相关推荐
段错误解决方法
段错误的原因**- **无效指针**:程序可能尝试通过一个空指针或未初始化的指针访问内存,导致段错误。- **越界数组访问**:当程序试图访问数组的边界之外的内存时,可能会触发段错误。
Linux下的段错误产生的原因及调试方法
### Linux下的段错误产生的原因及调试方法在深入探讨Linux下段错误的产生原因与调试方法之前,我们先来理解一下“段错误”(Segmentation Fault)的基本概念。
C语言段错误 总结 段错误整理
C语言段错误总结C语言中的段错误是指访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。段错误是一个非常麻烦的问题,因为它可能导致程序崩溃或出现不可预料的结果。一、什么是段错误?
段错误的调试
### 段错误的调试详解#### 一、段错误概念与原理段错误(Segmentation Fault)是一种常见的编程错误,通常发生在程序试图访问非法内存地址时。
段错误(linux)
#### 段错误的原因及实例段错误的发生有多种可能的原因,以下是一些常见的原因及其示例:1.


新手乐园
