我有一个Visual Studio 2008 C ++应用程序,我在其中使用一个函数,该函数接受一对以空值结尾的字符串对:

/// @brief count - number of pairs
/// @brief pairs - pairs of strings
void Foo( int count, const char* pairs[][ 2 ] );


我有一个std::vector< char >,其中包含用空终止符分隔的字符串。我希望能够执行以下操作:

std::vector< char > my_pairs;
Foo( pair_count, ( const char* pairs[][ 2 ] )&my_pairs.front() );


但是,编译器提醒我这是不可能的:

错误C2440:“类型转换”:无法从“字符*”转换为“常量字符* [] [2]”

有没有办法使这项工作?

谢谢,
保罗·H

最佳答案

函数Foo需要一个成对的指针数组。

在向量中,您有字符。

您需要创建一个成对的指针数组。最简单的方法是初始化这些指针,使其指向向量的缓冲区。

关于c++ - 从vector <char>转换为字符串数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4465049/

10-11 16:24