gpt4 book ai didi

c++ - 错误 : invalid conversion from 'char' to 'char*'

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:41:41 32 4
gpt4 key购买 nike

我有一个小问题。我不断收到此错误:error: invalid conversion from 'char' to 'char*' for this part of the code ( list<lst>* listSearch(list<lst> *LST, char* wrd, KEY key))。

我在这里做错了什么?

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;
}

最佳答案

这看起来像是一个编译器错误。至少编译器会发出另一条错误消息。

问题与运营商的优先级有关。这个声明

if(isPartOf(wrd, *i._code))

必须这样写

if(isPartOf(wrd, ( *i )._code))

似乎是编译器针对这条语句发出了错误

if(isPartOf(wrd, *i->_disease))

一定要这样写

if(isPartOf(wrd, i->_disease))

因为表达式 *i->_disease 的类型为 char 但您必须向函数传递一个类型为 char * 的对象

并且使用此函数会导致未定义的行为,因为它返回指向本地对象的指针。

list<lst>* listSearch(list<lst> *LST,char* wrd,KEY key)
{
list<lst> resultList;
list<lst>* result;

//...

result = &resultList;

return result;
}

考虑到函数 isPartOf 在逻辑上是错误的。例如,当 word 等于“ab”且 sentence 等于“a1111b”时,函数将返回 true。我不认为你的意思是这个逻辑。

关于c++ - 错误 : invalid conversion from 'char' to 'char*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335336/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com