#include "lib.c" typedef struct LL { int head; struct LL * next; } LL; void main(void){ ref_hash_table = (RefHashTableItem*) malloc(sizeof(RefHashTableItem)* ref_hash_table_size); for (size_t i=0;inext = 0; a->head = 12; RefHashTableItem a_; a_.is_used = true; a_.is_marked = UNMARKED; a_.refer_address = (size_t) a; a_.refee_address = (size_t) a->next; ref_hash_table = (RefHashTableItem*) add_item(ref_hash_table, a_); LL * b = malloc(sizeof(LL)); b->next = 0; b->head = 88; RefHashTableItem b_; b_.is_used = true; b_.is_marked = UNMARKED; b_.refer_address = (size_t) b; b_.refee_address = (size_t) b->next; ref_hash_table = (RefHashTableItem*) add_item(ref_hash_table, b_); LL * c = malloc(sizeof(LL)); c->next = b; c->head = 99; RefHashTableItem c1_; c1_.is_used = true; c1_.is_marked = UNMARKED; c1_.refer_address = (size_t) c; c1_.refee_address = (size_t) c->next; RefHashTableItem c2_; c2_.is_used = true; c2_.is_marked = UNMARKED; c2_.refer_address = (size_t) c; c2_.refee_address = 0; ref_hash_table = (RefHashTableItem*) add_item(ref_hash_table, c1_); ref_hash_table = (RefHashTableItem*) add_item(ref_hash_table, c2_); ref_hash_table = (RefHashTableItem*) unreachize_item(ref_hash_table, b_.refer_address); ref_hash_table = (RefHashTableItem*) unreachize_item(ref_hash_table, a_.refer_address); ref_hash_table = mark(ref_hash_table); ref_hash_table = sweep(ref_hash_table); }