What you are trying to do is to create one dynamically allocated array of characters, and then copy the strings to it. This is not what you have been asked to do. Read your instructions again: "copy that vector into an array of character pointers. For each element in the vector, allocate a new character array and copy the data from the vector element into that character array. Then insert a pointer to the character array into the array of character pointers."
So, you should create a dynamically allocated array of character pointers. Then you should create a dynamically allocated array of characters for each string in the vector, and copy the respective string to the respective dynamically allocated array of characters, and then copy the pointer to each of these arrays over to the array of character pointers.
By the way, now is a good time to begin dividing your program into parts. Instead of lumping everything into the main() function, create a function to read into the vector. Then create a function that answers the core of the question. Then create another function to print the strings out for checking.