gpt4 book ai didi

C++ 初学者 - 简单的代码块崩溃,原因不明

转载 作者:行者123 更新时间:2023-11-30 03:10:48 25 4
gpt4 key购买 nike

这是我遇到问题的一段代码。

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;
}

我相信代码是非常 self 解释的。

fillhandremovepiecesfromhand 工作正常,所以不是这样。我真的不明白这有什么问题:(

谢谢你的时间

编辑好的,我找到了程序崩溃的地方。对上述源代码添加了注释。

最佳答案

如果手是空的,那么这个操作:

rand() % hand.size() 

for 循环的初始化程序中,将尝试执行除以 0 的模数,这实际上是除以零。那是你的崩溃。

添加一个测试以确保在继续方法的其余部分之前手不是空的。

关于C++ 初学者 - 简单的代码块崩溃,原因不明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868373/

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