Ho provato a correggerlo così, ma non viene comunque..

#include <stdio.h>

int main()
{
char *str,temp[20],temp2[20];
int i;

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

for(i=0;i<=strlen(temp);i++){
temp2[i]=temp[strlen(temp)-i];
printf("%c",temp2[i]);
}

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

else
{

strcpy(*str,temp2);



printf("parola: ");

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

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

}


}


system("pause");

}