Freeing memory: is the programmer's responsibility.

Fragmentation of memory: the free parts of memory are not in one contiguous block:

We don't have enough contiguous space to allocate a block this big: