Ciao a tutti, volevo chiedervi se c'è un modo per allocare dinamicamente una stringa in base a ciò che l'utente inserisce, senza dover per forza chiedere in anticipo il numero di caratteri della stringa per poi fare la malloc..

Grazie

C'è un esercizio in particolare che non mi viene:

Scrivere un oprogramma che ricevuta in ingresso una stringa, la manipola invertendone il contenuto.
Il sottoprogramma restituisce il numero di caratteri trovati nella stringa.

Io ho fatto così ma non gira..


#include <stdio.h>

int main()
{
char *str,*str2,parola[20];
int i;

printf("inserisci parola: ");
gets(parola);

if(!(str=(char *)malloc(strlen(parola)*sizeof(char))))
printf("errore di memoria");

else
{
strcpy(*str,parola);

for(i=0;i<strlen(parola);i++){

*(str2+i)=*(str+srtlen(parola)-i);

}

printf("parola: ");

for(i=0;i<strlen(parola);i++){

printf("%c",*(str2+i));

}


}


system("pause");

}


Suggerimenti?