La fragmentación interna es un problema de memoria que ocurre cuando el asignador deja espacio extra vacío dentro de un bloque de memoria asignado. Por ejemplo, digamos que un asignador solo puede proporcionar memoria en fragmentos de 4 bytes. Si un programa solicita 29 bytes de memoria, en realidad recibirá una porción de 32 bytes. Dado que el programa utiliza sólo 29 de los 32 bytes disponibles, los 3 bytes sobrantes de memoria se desperdician.
Con el tiempo, se acumulan pequeños trozos de memoria no utilizada y crean grandes cantidades de memoria que el asignador no puede utilizar. Las dos formas más efectivas de evitar la fragmentación interna son asignar memoria dinámicamente o utilizar particiones de diferentes tamaños.