Mark & Sweep Implementation by C