例如:
string str[3];
void foo(char** str)
{
//do something to str...
}
如何以方便的方式将str []传递给foo函数?
答案 0 :(得分:4)
该函数需要一个指针数组,因此您必须从字符串数组中创建一个:
std::vector<char*> pointers;
for (auto & s : str) {
pointers.push_back(&s[0]);
}
foo(&pointers[0]);
请注意,如果函数修改指针或它们指向的字符串,这可能无效。如果可能的话,更好的选择是避免混合使用C和C ++样式的字符串处理。