我有这个载体
std::vector<char> myvector;
我得到指向第一个元素的指针
char* pBegin = &myvector[0];
我需要传递给函数char **,所以我这样做
some_function(pConvert, &pBegin,
是否可以避免使用pBegin?只需使用myvector
答案 0 :(得分:-1)
如果你想使用char **,你可以更改像std::vector<char*> myvector
这样的矢量定义,你的实现可能如下所示:
bool some_function(char* other, const std::vector<char*>& vec)
{
for (char* str : vec)
{
if (strcmp(str, other) == 0) return true;
}
return false;
}
int main()
{
std::vector<char*> myvector;
char *ch1 = new char[6];
strcpy(ch1, "Hello");
myvector.push_back(ch1);
char *ch2 = "World";
myvector.push_back(ch2);
char** str1 = &myvector[0];
char** str2 = &myvector[1];
cout << (*str1) << endl;
cout << (*str2) << endl;
cout << (some_function("Hello",myvector) ? "Found" : " Not found") <<endl;
delete ch1;
}