gpt4 book ai didi

c++ - 函数访问冲突读取位置

转载 作者:行者123 更新时间:2023-11-30 02:41:22 28 4
gpt4 key购买 nike

我有一个函数,当 return 语句在 else 中时,它只返回访问冲突读取位置错误,但当它在 else 之外时,不会出现错误,但有时由于代码我会得到相同的返回值不应该。这是代码:

void askUser(){
std::cout << "Level: ";
std::cin >> level;

for (int x = 0; x < 3; x++){
word = getWord(level);
std::cout << word << std::endl;
}
}

std::string getWord(int level){
int randomNumber = rand() % 3;
if (usedWords[0].find(line[level - 1][randomNumber]) != usedWords[0].end()){
getWord(level);
}
else{
usedWords[0].insert(line[level - 1][randomNumber]);
return line[level - 1][randomNumber]; //returns the access violation error
}
//if the return was here no access violation but can return previous return values which shouldn't happen
}

我不太确定到底是什么导致了错误,但我认为这与 return 语句有关。

最佳答案

问题是当 if 语句中的条件为真时,您没有返回任何内容。该函数说您应该返回一个字符串,但您只是到了函数的末尾。未定义的行为。

关于c++ - 函数访问冲突读取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182002/

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