为什么在第二次使用时程序会出错?
#include <stdio.h>#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define A 128
int main(void)
{
char a[A];
char *pS[A]={NULL};
char answer='0';
int i=0;
int m=0;
int ji=0;
double n=0.0;
printf("请输入任意个浮数点,若要运算请输入end\n");
printf("请输入:\n");
do
{
n=0;
i=0;
if(ji!=0)
printf("请输入:\n");
ji++;
while(strcmp(fgets(a,A,stdin),"end\n")!=0&&i<A)
{
pS[i]=(char*)malloc(strlen(a)+1);
if(pS[i]==NULL)
{
printf("内存失败,程序终止\n");
return 1;
}
strcpy(pS[i++],a);
}
for(m=0;m<i;m++)
{
n+=atof(pS[m]);
free(pS[m]);
pS[m]=NULL;
}
printf("平均值为 :%4lf\n",n/(double)m);
printf("你还需要使用吗?(y\\n):");
scanf("%c",&answer);
}while(tolower(answer)=='y');
return 0;
}