A fragmentação interna é um problema de memória que ocorre quando o alocador deixa espaço extra vazio dentro de um bloco de memória alocado. Por exemplo, digamos que um alocador só possa fornecer memória em blocos de 4 bytes. Se um programa solicitar 29 bytes de memória, ele receberá, na verdade, um pedaço de 32 bytes. Como o programa utiliza apenas 29 dos 32 bytes disponíveis, os 3 bytes de memória excedentes são desperdiçados.
Com o tempo, pequenos pedaços de memória não utilizada se acumulam e criam grandes quantidades de memória que o alocador não consegue usar. As duas maneiras mais eficazes de evitar a fragmentação interna são alocar memória dinamicamente ou usar partições de tamanhos diferentes.