first error:
The build_wordlist fuction's parameter should be reference instead of value. Because the main function pass the word_list pointer of string to the build_wordlist fuction to get the address of the string array. If the build_wordlist has the pass-value mechanism, the main function may fail to get the address. Of course, the capacity parameter should be reference too.
second error:
correct "string new_word_list = *(new string[2 * capacity]);":
The new_word_list varible is a string type pointer. It can't be assigned to specific string type value.
third error:
"delete word_list;" should be modified to "delete[] word_list". Because the word_list varible is assigned using new string[], so it must delete by delete[] operation.
forth error:
"*word_list = new_word_list;" should be modified to "word_list =new_word_list;". because the word_list is a string type pointer, it points to a string object. It can't be point to a value that is a address.
fifth error:
"delete[] word_list;" should be added to main function. Because the word_list vaible points to a array of string store units. These units are created through new operation, so it must be deleted when the main function ended. If not deleted , it may cause a error named memory leak.