1
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'는 새로운'rand()'로'while '이 될 수도 있습니다. – OJFord
죄송합니다. 실수 였으므로 시험해 보겠습니다. 감사합니다. @OllieFord – Jack
선, 중고 단어 등을 사용했던 변수 유형을 말씀해 주시겠습니까? – bittusarkar