Integer return function giving incompatible type error

I'm working on a project that requires me to use a letter system for a 2D array grid, and I decided to right a simple function that would quickly translate the letter into a more usable integer for array calling. The grid is 8 x 8, so the letters go a-h. the function is simple, and looks like so:

int columnReturn(char i){
if(i == 'a')
    return 0;
if(i == 'b')
    return 1;
    return -1;

etc. etc. Whenever I try to use this to call a section from the array using a variable from within a pointer struct that leads to another struct which has the variable, the pointer variable for which looks like so:

char **map;
map = createMapBoard();//This creates the area and fills it with certain characters.
map[struct1->struct2.row][columnReturn(struct1->struct2.col)] = 'I';'

And yet I always get a conflicting types error. I also get a warning that says that an argument type that has a default promotion can't match an empty parameter name list declaration.