小妹在程序中使用malloc()分配了一段内存给handle
现在我又有一个 vector<string> 类型的容器,该vector容器里存放了string类型变量现在小妹想问一下:我想把vector<string>容器中的内容全部复制到handle指向的内存中。利用这个handle来处理vector里面的数据,比如:string str = handle[i];(大概就是这种用法)不知道可不可以实现?求大侠们帮帮忙。小妹急死了。

解决方案 »

  1.   

    不需要分配空间啊
    vector<string> vString;
    string str = vString[i];这不就可以了?
      

  2.   

    当然可行了
    这些数据你都可以取到,你想怎么弄就怎么弄啊
    不过“以身相许”,嘿嘿,有点过了,hiahia
      

  3.   

    步骤:
    1。申请空间
    2。将verctor数据拷贝到handle中
    3。操作
    4。释放空间hiahia
      

  4.   

    那么handle指向的那块内存中,string变量是以什么数据结构存放的呢?
    能不能给出几行代码?
      

  5.   

    我就是要分配空间。我就是要多此一举。
    ____________服了你了。
    string str = vString[i];
    int nLength = vString[i].length() + 1; char *handle = (char *)malloc(nLength);
    memset(handle, 0, nLength);
    memcpy(handle, vString[i].c_str(), nLength);还准备以身相许么?
      

  6.   

    楼主准备以身相许吧,有那么多人都是证明人,哈哈。pomelowu,恭喜楼主属于你了,不要忘记散分啊~~~
      

  7.   

    谢谢 pomelowu(羽战士),你太棒了。
      

  8.   

    但是我的vector里不只有一项内容啊,可能有N项内容啊。
    能不能把handle分配的那段内存作为数组来存放N项的string变量呢?
      

  9.   

    能不能把handle分配的那段内存作为数组来存放N项的string变量呢?
    ________________可以,但是你要先弄清楚N等于多少,然后声明一个有N项的指针数组。
    还要遍历每一个string对象,给相应的指针分配空间,赋值。