mark-sweep garbage collector in C