You have a function,

validateCard(*c1, *c2)

You have told the compiler that function will be like this:

int validateCard()

The actual function doesn't have a return, (but might return an int, that part is not specified), and has parameters of two pointers, going into it.

Your prototype says the function will return an int, and has either no parameters going to it, or possibly one integer, you again, have not specified it correctly.

You need the actual function, and the function's prototype, to be the same:

either:

void validateCard(int*, int*) or
int(validateCard(void)
or whatever you want it to be, but it needs to have the same return type (or no return), and the same parameters.