#include #include #define TAILLE_DEPART 8 static char *lire_chaine() { int taille = TAILLE_DEPART; char *resultat = (char *) malloc(taille); int longueur = 0; char c; assert(resultat != NULL); c = (unsigned char) getchar(); while (c != '\n') { resultat[longueur++] = c; if (longueur == taille) { taille *= 2; resultat = realloc(resultat, taille); assert(resultat != NULL); } c = (unsigned char) getchar(); } resultat[longueur] = '\0'; resultat = realloc(resultat, longueur+1); return resultat; } main() { printf("%s\n", lire_chaine()); }