2 avirl108 avirl108 于 2015.06.07 19:33 提问

为什么出现Segmentation fault,求解释并纠错(谢绝新代码)么么哒、
//就输出89,129,一共2个数。
//这次是我自己写的,诚心诚意求修改 
# include<stdio.h>
int main()
{
    char str[80],*pstr;
    int i=0,flag=1,num=0;
    *pstr=str;
    gets(str);
    while(flag==1)
        for(i=0;0<=*(str+i)&&*(str+i)<=9;i++)
        {
        num=num+(*(str+i)-48);
        }
    flag=0;
    while(flag==0)  {
                    printf("%d,",num);
                    flag=1;
                    }
}


2个回答

u011208536
u011208536   2015.06.08 14:58
已采纳

至少你在while循环里面没有改变循环条件,会是死循环

yunfenglw
yunfenglw   2015.06.08 21:34

while死循环,使str取值越界~

Csdn user default icon
上传中...
上传图片
插入图片