rendered paste bodyinclude<stdio.h>
struct point{
int x;
int y;
};
struct subtest{
struct point pnt;
};
struct test{
int i;
struct test *ntest;
struct subtest *justtotest;
};
static int cmp(struct test *e1, struct test *e2) {
return e1->i - e2->i;
}
int main(void){
struct test **a;
struct test *k, *l, *m;
a = malloc(4*(sizeof(struct test *) + sizeof(struct subtest *) + sizeof(struct test *)));
k = malloc(sizeof(struct test));
l = malloc(sizeof(struct test));
m = malloc(sizeof(struct test));
k->i = 1;
l->i = 2;
m->i = 3;
k->justtotest->pnt.x = 4;
k->ntest = l;
l->ntest = m;
m->ntest = k;
a[0] = k;
a[1] = l;
a[2] = m;
a[3] = a[0];
a[0] = a[2];
a[2] = a[3];
mergesort(a, 3, sizeof(struct test *),(int (*)(const void *, const void *)) cmp);
int j;
for(j = 0; j<3; j++){
printf("%d\n", a[j]->i);
printf("\t%d\n", a[j]->ntest->i);
}
}