In quel modo hai dichiarato un'array caratteri di grandezza fissa. Per avere un'array di caratteri di lunghezza indeterminata, devi usare un puntatore, quindi:
E gestire la sua allocazione (malloc) il suo ridimensionamento (realloc) e l'eliminazione (free). Benvenuto nel mondo del C!