繁体   English   中英

错误:从'char'到'const 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM