This is when the memory available to a program is separated into many small blocks, meaning that it’s very difficult to allocate a larger block of memory to the program. By using functions which reduce fragmentation, i.e. calloc() and realloc(), and by defragmenting memory regularly, unnecessary fragmentation can be mitigated.