ho scritto questo codice con la funzione, chi mi sa dire perche non va?

main
----------------------

#include <stdio.h>
#include <stdlib.h>
extern char *inverti(char *);

void main()
{
char stringa[30];
printf("\n\nIMMETTI UNA STRINGA: ");
scanf("%s", stringa);
*stringa = inverti(stringa);
printf("stringa invertita --> %s ");
getchar();
}
funzione
-----------------------------
char *inverti(char *str)
{
int i;
char *str_out;
int len, len_2;
len = strlen(str);
len_2= len;
str_out=(char*)malloc(len+1);
for(i=0; i<len; i++, len_2--)
str_out[i] = str[len_2];
str_out[i] = '\0';
return str_out;

}

vi prego help me