Função para inverter uma string

Tentei fazer uma função a fim de inverter uma string mas o programa sempre retorna (null).

include

include

include

char reverse(char string[]) { int length, i;

length = strlen(string);  char reverse_string[length];  for(i=0; i<length; i++) {    reverse_string[i] = string[(length - i) - 1]; }  return reverse_string; 

}

int main() { char string[50];

gets(string);  printf("%s", reverse(string));  return 0; 

}

Pensei que pudesse estar colocando o caractere ” na primeira posição de reverse_string, mas eu adicionei o “-1” na operação e mesmo assim o programa sempre retorna (null). Se alguém souber o que está acontecendo e puder dar uma dica, eu agradeço!