将 char 向量的向量传递给 char**
Pass vector of char vectors to char**
是否可以将 std::vector<std::vector<char>>
传递给函数 void doSomething(char** arr)
例如存储一堆路径
与
相似
std::vector<char> vec
到 void func(char *str)
vec.assign(64, ' ');
函数调用:func(vec.data());
不直接,因为向量的向量不会将数组存储到其子数据地址。所以你必须建立这个数组
std::vector<char*> temp(vec.size);
for(unsigned int i=0;i<vec.size();i++) {
temp[i] = vec[i].data();
}
doSomething(temp.data());
完整示例:
std::vector<std::vector<char>> vec(16, std::vector<char>(255));
std::vector<char*> temp(vec.size());
for(unsigned int i=0;i<vec.size();i++)
{
temp[i] = vec[i].data();
}
doSomething(temp.data());
感谢加利内特!
是否可以将 std::vector<std::vector<char>>
传递给函数 void doSomething(char** arr)
例如存储一堆路径
与
相似std::vector<char> vec
到 void func(char *str)
vec.assign(64, ' ');
函数调用:func(vec.data());
不直接,因为向量的向量不会将数组存储到其子数据地址。所以你必须建立这个数组
std::vector<char*> temp(vec.size);
for(unsigned int i=0;i<vec.size();i++) {
temp[i] = vec[i].data();
}
doSomething(temp.data());
完整示例:
std::vector<std::vector<char>> vec(16, std::vector<char>(255));
std::vector<char*> temp(vec.size());
for(unsigned int i=0;i<vec.size();i++)
{
temp[i] = vec[i].data();
}
doSomething(temp.data());
感谢加利内特!