Grazie MdE
Allora l' ho rifatta cosi':
codice:
main()
{
    char *p;
    p=allocam(p);
    for(;*p!=10;p++)
      printf("%c",*p);
}
char* allocam(char*p)
{
    int i=0;
    char *c,ci;
    c=(char*)malloc(sizeof(char));
    while(ci!=10)
    {
      ci=getchar();
      c[i]=ci;
      i++;
      c=(char*)realloc(c,sizeof(char)*i);
    }
    return c;
}
Giusto per vedere come funziona la malloc.La main ristampa una stringa ricevuta in input.