O valor da string retornada se torna lixo

Estou tentando passar um personagemarray valor para um personagempointer. então esse valor é retornado para um método que está chamando, mas depois que ele é retornado, o valor se torna lixo. Alguém pode me ajudar?

#include <stdio.h>

const char * getname(){
     char nam[10];
     char * name;
     gets(nam);
     name = nam;
     return name;
}
main(){
       printf("%s",getname());
       getch();
}

está tudo bem, até que a corda seja devolvida

questionAnswers(4)

yourAnswerToTheQuestion