int main()
{
srand(time(0));
char* Plocation = &location[rand()%5]; //[Error] cannot convert 'char (*)[20]' to 'char*' in initialization
char* Pcolor = &color[rand()%5]; //[Error] cannot convert 'char (*)[7]' to 'char*' in initialization
char* Pfood = &food[rand()%5]; //[Error] cannot convert 'char (*)[12]' to 'char*' in initialization
char* Pcar = &car[rand()%5]; //[Error] cannot convert 'char (*)[7]' to 'char*' in initialization
char* Pdrink = &drink[rand()%5]; //[Error] cannot convert 'char (*)[18]' to 'char*' in initialization
char* Panimal = &animal[rand()%5]; //[Error] cannot convert 'char (*)[8]' to 'char*' in initialization
printf("What is your name? ");
scanf("%s", &name);
printf("How old are you? ");
scanf("%d",&age);
printf("%s is %d years old. %s's favorite color is %s. %s likes to drive a %s. \nThey also like to drink %s with their %s. %s's favorite animal is a %s. \n%s would love to live in the %s.", name, age, name, Pcolor, name, Pcar, Pdrink, Pfood, name, Panimal, name, Plocation);
I didn't explain last night, was tired...
you are taking an address of a pointer and that is one too many pointers. I took out the address of (&) and its effectively a pointer again, so it should work.