invalid convert from char to char*, but there isn't a char*

I got an error: invalid convert from char to char* on line indicated by carrots. AA and BB are both char, the function itself is char*. So what is this char* it is trying to convert onto? As you see, I am changing it to int to multiply, then changing it back to a char. a single numeral char. I don't want it to be an int.

char* menuAddress() { //returns a four digit number indcating menu address
  char *menuItem;
  char AA, BB;
  AA = menuIDa;
  BB = menuIDb;
  if (AA == -1) strcpy(AA, '9');
  if (BB == -1) strcpy(BB, '9');
  if (AA == 0) strcpy(AA, '8');
  if (BB == 0) strcpy(BB, '8');
  >>itoa(atoi(AA) * 10, AA, 10);
  strcat(menuItem, AA);
  strcat(menuItem, BB);

  return menuItem;

There are so few lines without obvious errors,
probably there are more but you did not give a definition of menuIDa and menuIDa.

 char *menuItem;

not initalized, pointing to Nirvana.

char AA, BB;
strcpy(AA, '9');
itoa(atoi(AA) * 10, AA, 10);

You can not fit strings into a single char and you cannot copy strings from a single char.

 strcat(menuItem, AA);

You can not concatenate a char to a char, that function is for strings.

Read about chars and strings (which are arrays of characters in C(++)).

Wait so '9' is a string? I thought it was a char. I guess I do have some reading to do.

so the data type of itoa() is char*? That is causing the error then. I need to work with single damned chars, not strings of them. Only menuItem is a string.

Damned chars are type charψ.

Damn indeed! I'm tired, dumb, and snappy.

Wait so '9' is a string? I thought it was a char. I guess I do have some reading to do.

You are correct. '9' is a char, but strcpy() expects a string (properly terminated with a '\0') as its second parameter