第五行加上static就没问题了,但是不知道为什么不用static就不,s1和s2不都是局部变量吗
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a, const void*b) {
static char s1[15],s2[15];
strcpy(s1,(char*)a);
strcat(s1,(char*)b);
strcpy(s2,(char*)b);
strcat(s2,(char*)a);
return strcmp(s2,s1);
}
int main() {
char m[30][15], n;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%s", m[i]);
qsort(m,n,sizeof(m[0]),cmp);
for (int i = 0; i < n; ++i)
printf("%s", m[i]);
return 0;
}