[求助]一道关于指针数组方面的问题
大家好!这道题是输入10个不等长的字符串排序输出.
我已查阅了本站的相关,旧贴些许收获,但尚有一些不明,尤其是我的程序开始的时候编译成功,但运行有的字符串就会找不到指针,后来我用论坛旧贴的方法也就是用到了着几个函数
malloc(sizeof(char)*20);
free();
getch();
用后实现其功能了,后来我把这几函数又给删除了,不过仍然可以实现功能,不知为何?
我是初学问题之拙绌,勿怪,望此站之仁人志士不吝赐教,并给予充分解答,并告之一些指针数组相关注意事项,感激涕泠!!
以下是我的程序:
main()
{
char *str[10];
int i;
void sort();
printf("input 10 string:\n");
for(i=0;i<10;i++)
scanf("%s",str[i]);
sort(str);
printf("the sort string:\n");
for(i=0;i<10;i++)
printf("%s\n",str[i]);
}
void sort(str)
char *str[10];
{
char *p;
int i,j,k;
for(i=0;i<9;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(strcmp(str[k],str[j])>0) k=j;
p=str[i],str[i]=str[k],str[k]=p;
}
}
{
char *str[10];
int i;
void sort();
printf("input 10 string:\n");
for(i=0;i<10;i++)
scanf("%s",str[i]);
sort(str);
printf("the sort string:\n");
for(i=0;i<10;i++)
printf("%s\n",str[i]);
}
void sort(str)
char *str[10];
{
char *p;
int i,j,k;
for(i=0;i<9;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(strcmp(str[k],str[j])>0) k=j;
p=str[i],str[i]=str[k],str[k]=p;
}
}
[此贴子已经被作者于2006-5-5 4:20:36编辑过]