In C, you need to declare the prototype of the function (or define it altogether) before you use it. The prototype is just the function without the body, like this:
Code:
// Do this before main
const char * makeSelection();
A "char*" is a pointer to "char". A "const char*" is a pointer to "const char".
I'd like to mention a couple of things you didn't ask about
1) All functions that take no parameters should be declared/defined using "(void)", like this:
Code:
const char* makeSelection(void);
because, in C in particular, an empty parameter list doesn't mean it takes no arguments. Strange, I know, but so it is.
2) Do not use "gets()".
Why gets() is bad / Buffer Overflows - Cprogramming.com