请帮忙解释一下!
#define M 5#define N 20
void sort(char **p);
#include<string.h>
#include<stdio.h>
main()
{
char buf[M][N];
int count;
for(count=0;count<M;count++)
gets(buf[count]);
sort(buf);
return 0;
}
void sort(char **p)
{
char *pstr;
int i,j;
for(i=0;i<M;i++)
for(j=i+1;j<M;j++)
if(strcmp(*(p+i),*(p+j))>0){
pstr=*(p+i);
*(p+i)=*(p+j);
*(p+j)=pstr;
}
for(i=0;i<M;i++)
puts(*(p+i));
}
我的这个程序有错误,难道对于字符串的排序只能够通过对指针数组的排序从而实现对字符串的排序吗??