La lecture dans une chaîne de caractères de longueur inconnue à partir de la console

Si je veux lire une chaîne de caractères de longueur arbitraire de la ligne de commande, quelle est la meilleure façon d'aller à ce sujet?

Pour le moment, je suis en train de faire ceci:

char name_buffer [ 80 ];
int chars_read = 0;
while ( ( chars_read < 80 ) && ( !feof( stdin ) ) ) {
   name_buffer [ chars_read ] = fgetc ( stdin );
   chars_read++;
}

Mais que puis-je faire si la chaîne est plus longue de 80 caractères? Évidemment, je pourrais juste initialiser le tableau à un plus grand nombre, mais je suis sûr qu'il doit y avoir une meilleure façon de donner le tableau de plus d'espace à l'aide de malloc ou quelque chose?

Toutes les allusions serait génial.

OriginalL'auteur Sam | 2011-03-21