如何转换矢量<矢量>为char **

问题描述:

如何将如何转换矢量<矢量<string>>为char **

vector< vector<string> > 

转换为

struct _Struct_3 
{ 
public: 
    char **__ptr; 
    int __size; 
}; 

+0

这是C++或C?如果你必须与C接口,那么你将不得不做一堆'malloc'和副本(并祈祷你清理正确的内存不会泄漏)。如果它是C++就不要那样做。永远。 – 2012-02-09 15:13:19

+1

你的问题是什么?我们应该为你写代码吗?那么你想要rentacoder.com。你到底想了些什么,你的问题在哪里,你遇到的具体问题是什么? – PlasmaHH 2012-02-09 15:13:39

+1

问题未指定。字符串矢量的矢量是三维字符数组,而不是二维字符。 – thiton 2012-02-09 15:13:50

可以遍历第一载体,然后

vector<string> tokens; 
char* args;                         
args = new char [tokens.size()];                       
copy(tokens.begin(), tokens.end(), args); 

vector<string>可以放到一个char **__ptr,所以你想把vector<vector<string>>_Struct_3*实际上?您只需遍历向量中的每个字符串并将其复制到结构体的char **__ptr中,同时递增大小。对每个矢量重复此操作。

+0

我不同意,但我的C/C++是一个生锈的。如何将一个矢量放入char **中? – 2012-05-06 00:46:14