C语言代码,段错误,看不出为什么错

题目表述:
对于给定的一个字符串,统计其中数字字符出现的次数。
错误描述:
编译器提示段错误
但是没找出为什么会发生段错误

# include<stdio.h>
# include<string.h>
int main()
{
    int i,n,len,num;
    char *ch;
    scanf("%d",&n);
    while(n--)
    {
        num=0;
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]>='0'&&ch[i]<='9')
                num++;
        }
        printf("%d\n",num);
    }   
    return 0;
}

char *ch;
定义了指针,但是没有分配空间

char *ch; = (char *)malloc(100*sizeof(char));

如果问题解决,麻烦点下回答右边的采纳,谢谢

没有实例化ch指针,所以你是不能存放东西的,具体的实例化可以用1楼的方法

没有实例化ch指针,还有for循环也错了,for(i=0;i<len;i++){}

定义指针时需要分配空间,没有实例化ch指针 主要是指针问题