纠结了好久,大神帮忙解决一下,最好能加点注释,该怎么解决

纠结了好久,大神帮忙解决一下,最好能加点注释
编写程序读入一组string类型的数据,并将它们存储在vector中.接着,把该vector对象复制给一个字符指针数组.为vector中的每个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组.

个人就是觉得C++的数组维数定义好多限制.然后就不懂的简单的把vector中的数据复制到数组中,都是做的很傻...
还有就是string和char之间的转换有点不适应!还有数组指针也有一点小问题...大家帮帮我把注释弄一下,让我理解一下...
非常感谢!!!!

------解决方案--------------------
C/C++ code

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char **argv)
{
    string word;
    vector<string> svec;
    cout<<"input some words:"<<endl;

    //往sve添加元素
    while (cin>>word)
    {
        svec.push_back(word);
    }

    int size = svec.size();

    typedef char * charPtr;

    //声明charPtr类型的动态数组,大小为svec的长度 
    charPtr *ptr = new charPtr[size];

    charPtr word2;
    //给字符数组中的元素初始化
    for (int i = 0; i != size; ++i)
    {
        word2 = const_cast<char *>(svec[i].c_str());
        ptr[i] = word2;
    }

    //输出字符数组中的元素
    for (int i = 0; i != size; ++i)
    {
        cout<<ptr[i]<<endl;
    }

    delete []ptr;
    system("pause");
    return 0;
}