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 ?