使用二重指针时出现的问题


#include<stdio.h>
#include<string.h>
char sort();
int main()
{
    char a[10][10]={"show","want","gone","town","bond","park","with","self","aunt","roll"};
    sort(&a[0]);
    int i;
    for(i=0;i<10;i++){
        puts(a[i]);
    }
    return 0;
}

char sort(char **p)
{
    char *min;
    min=*(p+1);
    *(p+1)=*(p+3);
    *(p+3)=min;
}

为什么运行之后第2行和第4行的字符串消失了?