конвертировать из вектора <char>в массив строк - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть приложение 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: «приведение типа»: невозможно преобразовать изchar * 'to' const char * [] [2] '

Есть ли способ сделать эту работу?

Спасибо, PaulH

1 Ответ

1 голос
/ 16 декабря 2010

Функция Foo ожидает массив пар указателей.

В вашем векторе у вас есть символы.

Вам необходимо создать массив пар указателей. Проще всего инициализировать эти указатели, чтобы они указывали на буфер вашего вектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...