0
我有一個結構如下從C++代碼傳遞多個字符串的功能的C代碼拋出異常
struct st
{
std::string name;
std ::string refer;
int number;
std::string path;
};
已經創建上述結構的陣列
struct st var[5]={{"rick1","ross1",1,"demo1"},
{ "rick2","roos2",2,"demo2" },
{ "rick3","roos3",3,"demo3"},
{"rick4","roos4,4,"demo4"},
{"rick5","roos5",5,"demo5"}};
現在我打電話給我userdefine函數(通)作爲
C++代碼
for(i=0;i<5;i++)
pass(var[i].name.c_str());// how can i pass name sting to char *?
C代碼
void pass(char *name) // implemented in c code so cannot use string
{
cout<<name<<endl;
}
我米應該通過名稱是字符串類型在調用函數(C++代碼)來調用的函數(C代碼),它是char *使用c_str(),但它拋出型.I米錯誤。請幫助我在此先感謝
注:通功能是從C哪個傳遞字符串作爲參數傳遞到C代碼趕上爲char *
請閱讀[this'c_str'參考](http://en.cppreference.com/w/cpp/string/basic_string/c_str)。注意它返回的是什麼類型。 –
如果它是*你的用戶定義的*函數,那就用'std :: string&'參數來定義它。請注意,在\ * new \ * C++ 11中,您有'std :: string :: data'。 – LogicStuff
@Biffen OP會使用'char const *'而不會有任何問題。 – LogicStuff