int benchmark() { int i; struct ilist *l, *the_list; struct sglib_iListType_iterator it; int cnt = 0; the_list = NULL; for (i = 1; i < 100; i++) { l = malloc (sizeof (struct ilist)); l->i = array [i]; /* Insert the new element into the list while keeping it sorted. */ sglib_iListType_add (&the_list, l); } for (l = sglib_iListType_it_init (&it, the_list); l != NULL; l = sglib_iListType_it_next (&it)) { cnt += l->i; } for(l = sglib_iListType_it_init (&it, the_list); l != NULL; l = sglib_iListType_it_next (&it)) { free (l); } return cnt; }
int main(int argc, char **argv) { int i,a; struct ilist *l, *the_list; struct sglib_iListType_iterator it; the_list = NULL; for (i=1; i<argc; i++) { sscanf(argv[i],"%d", &a); l = malloc(sizeof(struct ilist)); l->i = a; // insert the new element into the list while keeping it sorted sglib_iListType_add(&the_list, l); } // print the list for (l=the_list; l!=NULL; l=l->next_ptr) { printf("%d ", l->i); } printf("\n"); // free all for(l=sglib_iListType_it_init(&it,the_list); l!=NULL; l=sglib_iListType_it_next(&it)) { free(l); } return(0); }