将字符串数组转换为char**

Convert string array to char **

本文关键字:char 转换 字符串 数组      更新时间:2023-10-16

例如:

string str[3];
void foo(char** str)
{
  //do something to str...
}

如何以方便的方式将str[]传递给函数foo?

函数需要一个指针数组,因此您必须从字符串数组中生成一个:

std::vector<char*> pointers;
for (auto & s : str) {
    pointers.push_back(&s[0]);
}
foo(&pointers[0]);

请注意,如果函数修改指针或它们所指向的字符串,这可能无效。如果可能的话,更好的选择是避免混合使用C和C++风格的字符串处理。