El problema con tu función es que al hacer gets, además del carácter que introduces estas intentando también almacenar (inconscientemente) el salto de linea ("\n").
Por lo que estas intentando almacenar dos caracteres en un puntero a char con espacio para un solo carácter
La solución que puedo darte, es que en vez de usar char*, definas la variable como:
char c1[2];
Otra solución puede ser usar otra función como getchar:
Código C:
Ver original#include <stdio.h>
int main() {
// char c[2];
int c;
return 0;
}