La fragmentation interne est un problème de mémoire qui se produit lorsque l'allocateur laisse un espace supplémentaire vide dans un bloc de mémoire alloué. Par exemple, disons qu'un allocateur ne peut fournir de la mémoire que par tranches de 4. octets. Si un programme demande 29 octets de mémoire, il recevra en réalité un morceau de 32 octets. Étant donné que le programme n'utilise que 29 des 32 octets disponibles, les 3 octets de mémoire excédentaires sont gaspillés.
Au fil du temps, de minuscules morceaux de mémoire inutilisée s’accumulent et créent de grandes quantités de mémoire que l’allocateur ne peut pas utiliser. Les deux moyens les plus efficaces d’éviter la fragmentation interne consistent à allouer de la mémoire de manière dynamique ou à utiliser des partitions de différentes tailles.