二级指针对字符串排序
#include <stdio.h>#include <stdlib.h>
#include <string.h>
int main()
{
char **p,*q[5],str[5][20];
int i,j,k;
char *temp=(char*)malloc(sizeof(char));
for(i=0; i<5; i++)
{
gets(str[i]);
q[i]=str[i];
}
p=q;
for(i=0; i<5; i++)
{
k=i;
for(j=i+1; j<5; j++)
{
if(strcmp(*(p+i),*(p+j)>0))
k=j;
}
if(k!=i){
temp=*(p+i);
*(p+i)=*(p+k);
*(p+k)=temp;
}}
for(i=0; i<5; i++)
puts(str[i]);
}
运行崩溃,不知为何。请大神仔细讲解二级指针用法是否错误~
[ 本帖最后由 liuyawen44 于 2014-12-30 23:28 编辑 ]