- 论坛徽章:
- 0
|
改成这样看如何
- #include <stdio.h>
- #include <stdlib.h>
- struct st {
- int a;
- int b;
- };
- int
- comp(const void *p1, const void *p2)
- {
- const struct st *ptr1=p1;
- const struct st *ptr2=p2;
- return ptr1->a - ptr2->a;
- }
- int comp_st(const void *p1, const void *p2)
- {
- struct st** ptr1=p1;
- struct st** ptr2=p2;
- return comp(*ptr1,*ptr2);
- }
- int
- main()
- {
- struct st *slist;
- struct st *tab[10];
- int i;
- for (i=0;i<10;++i) {
- slist=malloc(sizeof(struct st));
- if (slist == NULL) {
- perror("new slist()");
- exit(1);
- }
- slist->a=rand()%100;
- slist->b=rand()%100;
- tab[i]=slist;
- printf("tab[%d]->a=%d\n",i,tab[i]->a);
- }
- qsort(tab, 10,sizeof(struct st*), comp_st);
- for (i=0;i<10;++i) {
- printf("tab[%d]->a=%d\n",i,tab[i]->a);
- free(tab[i]);
- }
- exit(0);
- }
复制代码 |
|