请教高手指点!!!

fengyefenfei 2008-09-25 07:08:58
我的这个程序是一个用来确定用户输入的子函数,就是输入的数据在0到100之间且只能有一位小数。这里面pInput指针在什么时候释放啊 试了很多地方总是崩溃。高手指点一下啊 谢谢
int CheckInputscore(char *p)
{//判断用户的成绩输入是否合法。
char *pInput=NULL;
int nCount=0;
int i=0;
int j=0;
pInput=(char*)malloc(16);
pInput=p;
nCount=strlen(pInput);
if ((pInput[0]=='\0')||(nCount >= 5))//长度不能超过5个字节,且不为空。
{
return 0;
}
else
{
for (j=0; j<nCount; j++)//判断是否有小数点。
{
if (pInput[j]=='.')
{
j=0;
break;
}
}
if (j==0)
{// 有小数点时
for (j=0; j<nCount; j++)
{
if (pInput[j]=='.')//判断第几位为小数点
{
break;
}
}
if (((nCount-j-1) > 1)||(pInput[0]=='.'))//小数点后超过一位且第一位为小数点时。
{
return 0;
}
else
{
for (int k=0; k<j; k++)
{
if ((pInput[k]-48)<0||(pInput[k]-48)>9)//小数点前有字母时。
{
return 0;
}
}
for (k=j+1; k<nCount; k++)
{
if ((pInput[k]-48)<0||(pInput[k]-48)>9)//小数点后有字母时。
{
return 0;
}
}
}
}
else
{// 无小数点
if (nCount==4)
{
return 0;
}
else
{
for (j=0; j<nCount; j++)
{
if ((pInput[j]-0x30)>9||(pInput[j]-0x30)<0)//输入中有字母时。
{
return 0;
}
}
if (atoi(pInput)>100||atoi(pInput)<0)//全为数字且超过0到100的范围时。
{
return 0;
}
}

}
}
return 1;
}
...全文
41 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soulic 2008-09-25
  • 打赏
  • 举报
回复
在每个return语句前将其free掉

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧