2010-12-16 75 views
0

我有一個Visual Studio 2008 C++應用程序,其中,我使用接受對空終止字符串的陣列的功能的數組:從矢量< char >轉換爲字符串

/// @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:「類型轉換」:不能從「字符*」轉換'const char * [] [2]'

有沒有辦法讓這項工作?

謝謝, PaulH

+0

你寫了這個函數嗎?你爲什麼不使用字符串對象來表示文本? – 2010-12-16 22:24:08

+0

@Karl - 因爲Foo()是從DLL中導出的。否則,它將是'std :: vector >'。 – PaulH 2010-12-16 22:46:00

回答

1

功能Foo預計對指針的陣列。

在你的載體中你有字符。

您需要創建一組指針對。最簡單的方法是初始化這些指針指向你的向量的緩衝區。