A dynamic-link library (DLL) contains one or more subprogram procedures
(functions or subroutines) that are compiled, linked, and stored separately from
the applications using them. Because the functions or subroutines are separate
from the applications using them, they can be shared or replaced easily.
use double link list to implenment memory allocation. There won t appear maloc, new, delete, in my code. All is using freelist to find a suitable memory space.