为什么这个程序每次执行完都会多出一句:Null pointer assignment,不知道为什么,但返回值并没有错,请高手给予迷津指点:
int Strcmp(char *s1,char *s2)
{
int c,i=0;
while((*(s1+i)!='\0')&&(*(s2+i)!='\0'))
{
if(*(s1+i)!=*(s2+i)) break;
i++;
}
c=*(s1+i)-*(s2+i);
return(c);
}
main()
{
static char *str[5];
int i,c;
char *s1, *s2;
for(i=0;i<5;i++)
str[i]=(char *)malloc((strlen(str[i])+1));
for(i=0;i<2;i++)
scanf("%s",str[i]);
s1=str[0],s2=str[1];
c=Strcmp(s1,s2);
printf("%d",c);
for(i=0;i<5;i++)
free(str[i]);
}
[此贴子已经被作者于2006-5-6 22:22:42编辑过]