![](/img/trans.png)
[英]Weird Error, error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
[英]error: invalid conversion from 'char' to 'const char*' [-fpermissive]|
只是一个菜鸟尝试一个程序,我正面临错误,我不知道如何解决它,我希望函数检索一个可以在main中进一步使用的字符串
char word_inventory(int ran)
{
char cities[][12]={
"ambala",
"yamunanagar",
"delhi",
"gurgaon",
"jaipur",
"chandigarh",
"pune",
"mumbai",
"dehradun",
"rajpura"
};
return cities[ran];
}
int main()
{ int win=0;
cout<<"welcome to hangman"<<endl;
cout<<"guess the city"<<endl;
randum = rand() % 10 + 0;
strcpy(word,word_inventory(randum)); //here is the error
x=strlen(word);
直接的错误是, cities[ran]
是一个char数组,它与函数的返回类型不匹配。 该数组将衰减为指向第一个元素的指针,因此您可以返回char *
。
更大的问题是指针将无效,因为它所指向的数组的生存期在函数调用的末尾结束。 一种解决方案是使数组为static
,使其具有永久寿命。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.