求助!用递归函数编写整数字符串转换成整型。程序运行时显示停止工作

#include<stdio.h> int str(char *s,int start,int end) { if(start==end) return s[start]-'0'; return str(s,start,end-1)*10+s[end]-'0'; } void main() { char *a; int n,i; n=i=0; gets(a); while(a[i]!='0') i++;//求出字符串长度 n=str(a,0,i-1); printf("%d\n",n); }
没有语法错误,额,我也不知道怎么改了。运行显示停止工作。是哪里出了问题啊?