다음은 코드 문제입니다.C++ 초보자 - 간단한 코드 블록 충돌, 이유를 알 수 없음
string Game::tradeRandomPieces(Player & player)
{
string hand = player.getHand();
string piecesRemoved;
size_t index;
//Program crashes while calculating numberOfPiecesToTrade...
size_t numberOfPiecesToTrade = rand() % hand.size() + 1
for (; numberOfPiecesToTrade != 0; --numberOfPiecesToTrade)
{
index = rand() % hand.size();
piecesRemoved += hand[index];
hand.erase(index,1);
}
player.removePiecesFromHand(piecesRemoved);
player.fillHand(_deck);
return piecesRemoved;
}
나는이 코드가 매우 자명하다고 생각한다.
fillhand
및 removepiecesfromhand
은 정상적으로 작동하므로 문제는 아닙니다. 정말 시간이 :(
감사 뭐가 잘못 얻을 수
OK, I 프로그램이 충돌합니다. 위의 소스 코드에 주석을 추가했습니다.
을 발견 편집
어디에서 충돌이 발생합니까? 당신은 역 추적을 가지고 있습니까? –
어떤 오류가 발생했는지, 어떤 행이 죽어가는 지 등 자세한 정보를 제공 할 수 있습니까? –
'player.removePiecesFromHand (..)'및'player.fillhand (...)'를 주석 처리하면 충돌이 발생합니다. 그렇다면 어떤 라인을 꽤 빨리 줄일 수 있습니다. –