只是一个尝试编程的菜鸟 我正面临着错误,我不知道如何解决它 我希望函数重新调整一个可用于在主
中进一步使用的字符串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);
答案 0 :(得分:2)
立即错误是(defun show-in-finder ()
(interactive)
(shell-command (concat "open -R " buffer-file-name)))
是一个字符数组,它与函数的返回类型不匹配。数组会衰减为指向第一个元素的指针,因此您可以返回cities[ran]
。
更大的问题是指针无效,因为它指向的数组的生命周期在函数调用结束时结束。一种解决方案是生成数组char *
,因此它具有永久生命周期。