                    #include <vector>
                    #include <string>
                    #include <iostream>
     
                    void legacy_function(char **myList) 
                    {
                       for (int i = 0; myList[i]; ++i)
                           std::cout << myList[i] << "\n";
                    }
     
                    using namespace std;
                    int main()
                    {
                        vector<string> myVector;
                        myVector.push_back("first");
                        myVector.push_back("second");
                        //...
                        // create the pointer vector
                        vector<char *> myPtrVector;
                        // add pointer to string to vector
                        for (size_t i = 0; i < myVector.size(); ++i)
                           myPtrVector.push_back(const_cast<char*>(myVector[i].c_str()));
                        // stick the null at the end
                        myPtrVector.push_back(NULL);
                        // ...
     
     
                        // call legacy function
                        legacy_function(&myPtrVector[0]);
                    }