Dynamic Allocation

Global Pool:
To store "JOE", request 4 bytes with malloc(4):
They are uninitialized. Copy "JOE" into them:
Do the same for "MARYJANE":
Memory allocator keeps track of allocated/free memory:
Return "JOE" to global pool with free: