codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0;
    char *c,ci;
    c=(char*)malloc(sizeof(char));
    while(ci!=10)
    {
      ci=getchar();
      c[i]=ci;
      i++;
      c=(char*)realloc(c, i + 1);
    }
    c[i] == 0;
    puts(c);
    free(c);
    return 0;
}
I puntatori si liberano con la free().