Ok grazie mille. Ho modificato nel seguente modo ed ora sembra che proceda bene
int main(void)
{
char *stringa,ch;
int n=0,i=0;
stringa=(char *) malloc(n+1);
printf("inserire messaggio: ");
while((ch=getchar())!= '\n' )
{
n++;
stringa=(char *) realloc(stringa,n+1);
stringa[i++]=ch;
}
stringa='\0';
printf("%s",stringa);
return 0;