codice:
realloc (word, sizeof(char) * 4)
Qui stai riallocando la stessa quantità di memoria che era già allocata, mentre devi ovviamente allocarne di più.