int chunk_pool_deinit(chunk_pool_t *cpool) { if(!cpool) { return EINVAL; } int err = list_deinit(cpool->free_chunks); if(err) return err; err = list_deinit(cpool->zero_chunks); if(err) return err; err = ht_deinit(cpool->hash); int i = 0; int j = 0; for(i; i < cpool->loafs_count; i++) { for(j; j < DEFAULT_ARRAY_SIZE; j++) { chunk_deinit(&(cpool->loafs)[i][j]); } free((cpool->loafs)[i]); } free(cpool->loafs); err = close(cpool->fd); if(err == -1) return errno; free(cpool); return 0; }
/* 测试用例3 */ void test3 (void) { LIST list1, list2; list_init (&list1); list_init (&list2); int i; for (i = 0; i < 10; ++i) list_append (&list1, i); for (i = 10; i < 100; i += 10) list_append (&list2, i); printf ("%d %d\n", list_middle (&list1), list_middle (&list2)); /* 4 50 */ list_deinit (&list2); list_deinit (&list1); }
/* 测试用例4 */ void test4 (void) { LIST list; list_init (&list); srand (time (NULL)); int i; for (i = 0; i < 20; ++i) list_insert (&list, rand () % 100); list_print (&list); /* 有序序列 */ list_deinit (&list); }
/* 测试用例2 */ void test2 (void) { LIST list; list_init (&list); int i; for (i = 0; i < 10; ++i) list_append (&list, i); list_print (&list); /* 0 1 2 3 ... */ list_reverse (&list); list_print (&list); /* 9 8 7 6 ... */ list_deinit (&list); }
/* 测试用例5 */ void test5 (void) { LIST list1, list2; list_init (&list1); list_init (&list2); srand (time (NULL)); int i; for (i = 0; i < 10; ++i) list_insert (&list1, rand () % 100); for (i = 0; i < 5; ++i) list_insert (&list2, rand () % 100); printf ("1:"); list_print (&list1); printf ("2:"); list_print (&list2); list_merge (&list1, &list2); printf ("1:"); list_print (&list1); printf ("2:"); list_print (&list2); list_deinit (&list2); list_deinit (&list1); }
/* 测试用例1 */ void test1 (void) { LIST list; list_init (&list); list_append (&list, 23); list_append (&list, 17); list_append (&list, 37); list_append (&list, 29); list_append (&list, 51); printf ("%u\n", list_size (&list)); list_print (&list); list_rprint (&list); list_deinit (&list); }
void stack_deinit(stack_t *q) { if (q) list_deinit(q); }