我有一個小問題。我一直得到這個錯誤:錯誤:對於這部分代碼(list<lst>* listSearch(list<lst> *LST, char* wrd, KEY key)
),從'char'無效轉換爲'char *'。錯誤:從'char'無效轉換爲'char *'
我在這裏做錯了什麼?
enum KEY {code, disease} key;
struct lst
{
char *_code;
char *_disease;
lst* next;
};
bool isPartOf(char* word, char* sentence)
{
unsigned int i=0;
unsigned int j=0;
for(i;i < strlen(sentence); i++)
{
if(sentence[i] == word[j])
{
j++;
}
}
if(strlen(word) == j)
return true;
else
return false;
}
list<lst>* listSearch(list<lst> *LST,char* wrd,KEY key)
{
list<lst> resultList;
list<lst>* result;
switch(key)
{
case code:
for(list<lst>::iterator i = LST->begin(); i != LST->end(); i++)
{
if(isPartOf(wrd, *i._code))
{
resultList.push_back(*i);
}
}
break;
case disease:
for(list<lst>::iterator i = LST->begin(); i != LST->end(); i++)
{
if(isPartOf(wrd, *i->_disease))
resultList.push_back(*i);
}
break;
}
result = &resultList;
return result;
}
你最近怎麼調用最後一個函數? – 2014-12-06 19:09:39
您在編譯器告訴您的行(您甚至沒有向我們提到過)上傳遞'char'來代替'char *'。它爲什麼會起作用? – chris 2014-12-06 19:09:57
請切換到'std :: string'來避免這類問題。 – 2014-12-06 19:16:01