ciao,

ho fatto una struttura del genere:

typedef struct{
char voce1[MAX];
char voce2[MAX];
char voce3[MAX];
int voce4;
char *stringa;
} Struttura;

poi ho fatto una funzione che con una malloc dovrebbe prendere in input una stringa qualunque ed immagazzinarla nel puntatore *s;
dopo vorrei che tutta la stringa contenuta dal puntatore *s venisse immagazzinata nelal variabile della struttura " char *stringa " in modo da ritornarla con la funzione...

io ho fatto così:

Struttura inserisci_testo(){ /* FUNZIONE INSERISCI TESTO */
Struttura testo;

unsigned long i = 0;

printf("inserisci una stringa:\n");

if( ! (testo.stringa = (char*) malloc(sizeof(char))) )
{
printf("\aimpossibile allocare la memoria\n");

}
else {

while( getchar != '\0' )
{
testo.stringa[i]=getchar();
if(testo.stringa[i]=='\n') break;

i++;
if( ! (testo.stringa = (char*) realloc(testo.stringa, i+1)) )
{
printf("\aimpossibile allocare altra memoria\n");

}
}



testo.stringa[i]='\0';

}

printf("la stringa inserita e':\n%s\nsono stati allocati %d byte\n", testo.stringa, ++i);

return testo;

}

il problema è che anke se viene compilato bene, quando lo faccio girare non va bene nel senso che non mi chiede di inserire il testo e mi visualizza solo il contenuto delle printf... qual è il problema secondo voi ?